Micro ZigzagMicro zigzag is created based on similar concepts as that of zigzag but by using lower timeframe intra-bar data. The lines join candle's high/low points but also depict how the price movement within the candle happened. That is, if the high of the candle is reached first, pivot from previous candle join the high first and then low and vice versa.
The output can also be viewed as advanced line chart.
🎲 Process
🎯 For every bar identify whether high came first or low by using lower timeframe data.
🎯 If high came before low, add high as high pivot first and then low as low pivot. If otherwise, add low as lower pivot first and then high as higher pivot.
🎯 When adding pivot, check if the last pivot is in the same direction as the new one. If yes, replace existing pivot if the new one goes beyond it. Ignore otherwise.
🎯 If the last pivot is of different direction as that one new one, then simple add the new pivot.
"high low" için komut dosyalarını ara
Volume-based Support & Resistance ZonesThe new and improved Support & Resistance Zones indicator is here. This indicator is based on high volume at fractal lows or fractal highs with the zones based on the size of the wick for that timeframe’s candle.
This helps traders visualize which price levels are of the most significance for either reversals or continuation of the trend when zones are broken and then re-tested.
Original script is thanks to synapticex and additional modifications is thanks to Lij_MC. Credit to both of them for most of the logic behind this script.
Since then I have made many changes to this script as noted below:
Changed default S/R lines from plots to lines, and gave option to user to change between solid line, dashed line, or dotted line for both S/R lines.
Added additional time frame and gave more TF options for TF1 other than current TF. Now you will have 4 time frames to plot S/R zones from.
Gave user option to easily change line thickness for all S/R lines.
Made it easier to change colors of S/R lines and zones by consolidating the options under settings (rather than under style).
Added extensions to active SR Zones to extend all the way right.
Added option to extend or not extend the previous S/R zones up to next S/R zone.
Added optional time frame labels to active S/R zones, with left and right options as well as option to adjust how far to the right label is set.
Fixed issue where the higher time frame S/R zone was not properly starting from the high/low of fractal. Now any higher time frame S/R will begin exactly at the High/Low points. Note that this may not work perfectly on stocks and if a fractal high/low is too many bars in the past, it will revert to a default max bars back to avoid script errors.
Added to script a function that will prevent S/R zones from lower time frames displaying while on a higher time frame. This helps clean up the chart quite a bit.
Created arrays for each time frame's boxes and lines so that the number of S/R zones can be controlled for each time frame and limit memory consumption.
New alert options added and customized alert messages.
- The way this indicator works is it looks for fractal highs or fractal lows with volume that pierces above the volume's Moving Average. This moving average value can be modified in the settings for each time frame.
- The fractal highs will be confirmed with 3 successive higher highs followed by 2 successive lower highs and vice versa for the fractal lows.
- The zone is created from the fractal high/low and the close of the candle for whatever time frame you selected. The bigger the zone, the more significant that zone is.
- You can disable any zone, change the zones to show lines only, and modify all the colors, transparencies, and thickness of lines for all the zones.
- To create alerts, you first want to enable the types of alerts you want for each time frame in the indicator's settings. Then after you apply changes, right click on one of the zones on the chart, and click "Add Alert on Vol S/R Zones". You do not need to add a title as the correct alert messages are already built-in.
- More changes will be coming in the future!
I hope you find this indicator useful, if so please give it a thumbs up!
If you have any suggestions or features you would like to see, just let me know in the comment section. Thanks and enjoy!
lib_Indicators_v2_DTULibrary "lib_Indicators_v2_DTU"
This library functions returns included Moving averages, indicators with factorization, functions candles, function heikinashi and more.
Created it to feed as backend of my indicator/strategy "Indicators & Combinations Framework Advanced v2 " that will be released ASAP.
This is replacement of my previous indicator (lib_indicators_DT)
I will add an indicator example which will use this indicator named as "lib_indicators_v2_DTU example" to help the usage of this library
Additionally library will be updated with more indicators in the future
NOTES:
Indicator functions returns only one series :-(
plotcandle function returns candle series
INDICATOR LIST:
hide = 'DONT DISPLAY', //Dont display & calculate the indicator. (For my framework usage)
alma = 'alma(src,len,offset=0.85,sigma=6)', //Arnaud Legoux Moving Average
ama = 'ama(src,len,fast=14,slow=100)', //Adjusted Moving Average
acdst = 'accdist()', //Accumulation/distribution index.
cma = 'cma(src,len)', //Corrective Moving average
dema = 'dema(src,len)', //Double EMA (Same as EMA with 2 factor)
ema = 'ema(src,len)', //Exponential Moving Average
gmma = 'gmma(src,len)', //Geometric Mean Moving Average
hghst = 'highest(src,len)', //Highest value for a given number of bars back.
hl2ma = 'hl2ma(src,len)', //higest lowest moving average
hma = 'hma(src,len)', //Hull Moving Average.
lgAdt = 'lagAdapt(src,len,perclen=5,fperc=50)', //Ehler's Adaptive Laguerre filter
lgAdV = 'lagAdaptV(src,len,perclen=5,fperc=50)', //Ehler's Adaptive Laguerre filter variation
lguer = 'laguerre(src,len)', //Ehler's Laguerre filter
lsrcp = 'lesrcp(src,len)', //lowest exponential esrcpanding moving line
lexp = 'lexp(src,len)', //lowest exponential expanding moving line
linrg = 'linreg(src,len,loffset=1)', //Linear regression
lowst = 'lowest(src,len)', //Lovest value for a given number of bars back.
pcnl = 'percntl(src,len)', //percentile nearest rank. Calculates percentile using method of Nearest Rank.
pcnli = 'percntli(src,len)', //percentile linear interpolation. Calculates percentile using method of linear interpolation between the two nearest ranks.
rema = 'rema(src,len)', //Range EMA (REMA)
rma = 'rma(src,len)', //Moving average used in RSI. It is the exponentially weighted moving average with alpha = 1 / length.
sma = 'sma(src,len)', //Smoothed Moving Average
smma = 'smma(src,len)', //Smoothed Moving Average
supr2 = 'super2(src,len)', //Ehler's super smoother, 2 pole
supr3 = 'super3(src,len)', //Ehler's super smoother, 3 pole
strnd = 'supertrend(src,len,period=3)', //Supertrend indicator
swma = 'swma(src,len)', //Sine-Weighted Moving Average
tema = 'tema(src,len)', //Triple EMA (Same as EMA with 3 factor)
tma = 'tma(src,len)', //Triangular Moving Average
vida = 'vida(src,len)', //Variable Index Dynamic Average
vwma = 'vwma(src,len)', //Volume Weigted Moving Average
wma = 'wma(src,len)', //Weigted Moving Average
angle = 'angle(src,len)', //angle of the series (Use its Input as another indicator output)
atr = 'atr(src,len)', //average true range. RMA of true range.
bbr = 'bbr(src,len,mult=1)', //bollinger %%
bbw = 'bbw(src,len,mult=2)', //Bollinger Bands Width. The Bollinger Band Width is the difference between the upper and the lower Bollinger Bands divided by the middle band.
cci = 'cci(src,len)', //commodity channel index
cctbb = 'cctbbo(src,len)', //CCT Bollinger Band Oscilator
chng = 'change(src,len)', //Difference between current value and previous, source - source .
cmo = 'cmo(src,len)', //Chande Momentum Oscillator. Calculates the difference between the sum of recent gains and the sum of recent losses and then divides the result by the sum of all price movement over the same period.
cog = 'cog(src,len)', //The cog (center of gravity) is an indicator based on statistics and the Fibonacci golden ratio.
cpcrv = 'copcurve(src,len)', //Coppock Curve. was originally developed by Edwin "Sedge" Coppock (Barron's Magazine, October 1962).
corrl = 'correl(src,len)', //Correlation coefficient. Describes the degree to which two series tend to deviate from their ta.sma values.
count = 'count(src,len)', //green avg - red avg
dev = 'dev(src,len)', //ta.dev() Measure of difference between the series and it's ta.sma
fall = 'falling(src,len)', //ta.falling() Test if the `source` series is now falling for `length` bars long. (Use its Input as another indicator output)
kcr = 'kcr(src,len,mult=2)', //Keltner Channels Range
kcw = 'kcw(src,len,mult=2)', //ta.kcw(). Keltner Channels Width. The Keltner Channels Width is the difference between the upper and the lower Keltner Channels divided by the middle channel.
macd = 'macd(src,len)', //macd
mfi = 'mfi(src,len)', //Money Flow Index
nvi = 'nvi()', //Negative Volume Index
obv = 'obv()', //On Balance Volume
pvi = 'pvi()', //Positive Volume Index
pvt = 'pvt()', //Price Volume Trend
rise = 'rising(src,len)', //ta.rising() Test if the `source` series is now rising for `length` bars long. (Use its Input as another indicator output)
roc = 'roc(src,len)', //Rate of Change
rsi = 'rsi(src,len)', //Relative strength Index
smosc = 'smi_osc(src,len,fast=5, slow=34)', //smi Oscillator
smsig = 'smi_sig(src,len,fast=5, slow=34)', //smi Signal
stdev = 'stdev(src,len)', //Standart deviation
trix = 'trix(src,len)' , //the rate of change of a triple exponentially smoothed moving average.
tsi = 'tsi(src,len)', //True Strength Index
vari = 'variance(src,len)', //ta.variance(). Variance is the expectation of the squared deviation of a series from its mean (ta.sma), and it informally measures how far a set of numbers are spread out from their mean.
wilpc = 'willprc(src,len)', //Williams %R
wad = 'wad()', //Williams Accumulation/Distribution.
wvad = 'wvad()' //Williams Variable Accumulation/Distribution.
}
f_func(string, float, simple, float, float, float, simple) f_func Return selected indicator value with different parameters. New version. Use extra parameters for available indicators
Parameters:
string : FuncType_ indicator from the indicator list
float : src_ close, open, high, low,hl2, hlc3, ohlc4 or any
simple : int length_ indicator length
float : p1 extra parameter-1. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p2 extra parameter-2. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p3 extra parameter-3. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
simple : int version_ indicator version for backward compatibility. V1:dont use extra parameters p1,p2,p3 and use default values. V2: use extra parameters for available indicators
Returns: float Return calculated indicator value
fn_heikin(float, float, float, float) fn_heikin Return given src data (open, high,low,close) as heikin ashi candle values
Parameters:
float : o_ open value
float : h_ high value
float : l_ low value
float : c_ close value
Returns: float heikin ashi open, high,low,close vlues that will be used with plotcandle
fn_plotFunction(float, string, simple, bool) fn_plotFunction Return input src data with different plotting options
Parameters:
float : src_ indicator src_data or any other series.....
string : plotingType Ploting type of the function on the screen
simple : int stochlen_ length for plotingType for stochastic and PercentRank options
bool : plotSWMA Use SWMA for smoothing Ploting
Returns: float
fn_funcPlotV2(string, float, simple, float, float, float, simple, string, simple, bool, bool) fn_funcPlotV2 Return selected indicator value with different parameters. New version. Use extra parameters fora available indicators
Parameters:
string : FuncType_ indicator from the indicator list
float : src_data_ close, open, high, low,hl2, hlc3, ohlc4 or any
simple : int length_ indicator length
float : p1 extra parameter-1. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p2 extra parameter-2. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p3 extra parameter-3. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
simple : int version_ indicator version for backward compatibility. V1:dont use extra parameters p1,p2,p3 and use default values. V2: use extra parameters for available indicators
string : plotingType Ploting type of the function on the screen
simple : int stochlen_ length for plotingType for stochastic and PercentRank options
bool : plotSWMA Use SWMA for smoothing Ploting
bool : log_ Use log on function entries
Returns: float Return calculated indicator value
fn_factor(string, float, simple, float, float, float, simple, simple, string, simple, bool, bool) fn_factor Return selected indicator's factorization with given arguments
Parameters:
string : FuncType_ indicator from the indicator list
float : src_data_ close, open, high, low,hl2, hlc3, ohlc4 or any
simple : int length_ indicator length
float : p1 parameter-1. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p2 parameter-2. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p3 parameter-3. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
simple : int version_ indicator version for backward compatibility. V1:dont use extra parameters p1,p2,p3 and use default values. V2: use extra parameters for available indicators
simple : int fact_ Add double triple, Quatr factor to selected indicator (like converting EMA to 2-DEMA, 3-TEMA, 4-QEMA...)
string : plotingType Ploting type of the function on the screen
simple : int stochlen_ length for plotingType for stochastic and PercentRank options
bool : plotSWMA Use SWMA for smoothing Ploting
bool : log_ Use log on function entries
Returns: float Return result of the function
fn_plotCandles(string, simple, float, float, float, simple, string, simple, bool, bool, bool) fn_plotCandles Return selected indicator's candle values with different parameters also heikinashi is available
Parameters:
string : FuncType_ indicator from the indicator list
simple : int length_ indicator length
float : p1 parameter-1. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p2 parameter-2. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
float : p3 parameter-3. active on Version 2 for defining multi arguments indicator input value. ex: lagAdapt(src_, length_,LAPercLen_=p1,FPerc_=p2)
simple : int version_ indicator version for backward compatibility. V1:dont use extra parameters p1,p2,p3 and use default values. V2: use extra parameters for available indicators
string : plotingType Ploting type of the function on the screen
simple : int stochlen_ length for plotingType for stochastic and PercentRank options
bool : plotSWMA Use SWMA for smoothing Ploting
bool : log_ Use log on function entries
bool : plotheikin_ Use Heikin Ashi on Plot
Returns: float
[MF] Auto Fibonacci LevelsDescription:
Automatically draw Fibonacci Pivot levels based on the previous (day's, week's or month's)
Range ( High-Low ). The HLC3 is used as the default Pivot level.
Unlike the "Auto Fibonacci Levels", this variation does not update
Levels on current day even if the price goes past the R3/S3 levels.
Timeframes: 1D, 1W, 1M
Range = (High - Low) - From previous Day, Week or month.
FIB LEVELS:
- Yellow = Pivot and Pivot Zone (HLC3 by default)
- red = R1,S1 Levels 0.236 * Range
- Green = R2,S2 Levels 0.368 * Range
- Lime = R3,S3 Levels 0.618 * Range
- Blue = R4,S4 Levels 0.786 * Range
- Gray = R5,S5 Levels 1.000 * Range
- Lime = R6,S6 Levels 1.236 * Range
- Red = R7,S7 Levels 1.382 * Range
- Blue = R8,S8 Levels 1.618 * Range
- Green = R9,S9 Levels 2.000 * Range
CLASSIC LEVELS:
- Yellow = Pivot and Pivot Zone (HLC3)
- Green = R1,S1 Levels (Pivot*2 - Low), (Pivot*2 - High)
- Lime = R2,S2 Levels ( Pivot + Range), ( Pivot - Range)
- Lime = R3,S3 Levels (High + 2*( Pivot - Low)), (Low - 2*(High - Pivot ))
- Blue = R4,S4 Levels (High + 3*( Pivot - Low)), (Low - 3*(High - Pivot ))
Refrences:
- Auto Daily Fib Levels R3.0 by JustUncleL
- Auto Fib by TheYangGuizi
- Monthly Dynamic Range Levels (Fibonaci) V0 by RicardoSantos
Modifications:
- Added next FIB Levels. (changes during the current cycle)
- Added FIB 0.236 Levels
- Added Option to change the colors of the Fib Levels
- Changed Default colors to the colors of Tradingview
- Upgraded to Version4 Pinescript
supertrendHere is an extensive library on different variations of supertrend.
Library "supertrend"
supertrend : Library dedicated to different variations of supertrend
supertrend_atr(length, multiplier, atrMaType, source, highSource, lowSource, waitForClose, delayed) supertrend_atr: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
length : : ATR Length
multiplier : : ATR Multiplier
atrMaType : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
source : : Default is close. Can Chose custom source
highSource : : Default is high. Can also use close price for both high and low source
lowSource : : Default is low. Can also use close price for both high and low source
waitForClose : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
delayed : : if set to true lags supertrend atr stop based on target levels.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_bands(bandType, maType, length, multiplier, source, highSource, lowSource, waitForClose, useTrueRange, useAlternateSource, alternateSource, sticky) supertrend_bands: Simple supertrend based on atr but also takes into consideration of custom MA Type, sources
Parameters:
bandType : : Type of band used - can be bb, kc or dc
maType : : Moving Average type for Bands. This can be sma, ema, hma, rma, wma, vwma, swma
length : : Band Length
multiplier : : Std deviation or ATR multiplier for Bollinger Bands and Keltner Channel
source : : Default is close. Can Chose custom source
highSource : : Default is high. Can also use close price for both high and low source
lowSource : : Default is low. Can also use close price for both high and low source
waitForClose : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
useTrueRange : : Used for Keltner channel. If set to false, then high-low is used as range instead of true range
useAlternateSource : - Custom source is used for Donchian Chanbel only if useAlternateSource is set to true
alternateSource : - Custom source for Donchian channel
sticky : : if set to true borders change only when price is beyond borders.
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
supertrend_zigzag(length, history, useAlternateSource, alternateSource, source, highSource, lowSource, waitForClose, atrlength, multiplier, atrMaType) supertrend_zigzag: Zigzag pivot based supertrend
Parameters:
length : : Zigzag Length
history : : number of historical pivots to consider
useAlternateSource : - Custom source is used for Zigzag only if useAlternateSource is set to true
alternateSource : - Custom source for Zigzag
source : : Default is close. Can Chose custom source
highSource : : Default is high. Can also use close price for both high and low source
lowSource : : Default is low. Can also use close price for both high and low source
waitForClose : : Considers source for direction change crossover if checked. Else, uses highSource and lowSource.
atrlength : : ATR Length
multiplier : : ATR Multiplier
atrMaType : : Moving Average type for ATR calculation. This can be sma, ema, hma, rma, wma, vwma, swma
Returns: dir : Supertrend direction
supertrend : BuyStop if direction is 1 else SellStop
taLibrary "ta"
█ OVERVIEW
This library holds technical analysis functions calculating values for which no Pine built-in exists.
Look first. Then leap.
█ FUNCTIONS
cagr(entryTime, entryPrice, exitTime, exitPrice)
It calculates the "Compound Annual Growth Rate" between two points in time. The CAGR is a notional, annualized growth rate that assumes all profits are reinvested. It only takes into account the prices of the two end points — not drawdowns, so it does not calculate risk. It can be used as a yardstick to compare the performance of two instruments. Because it annualizes values, the function requires a minimum of one day between the two end points (annualizing returns over smaller periods of times doesn't produce very meaningful figures).
Parameters:
entryTime : The starting timestamp.
entryPrice : The starting point's price.
exitTime : The ending timestamp.
exitPrice : The ending point's price.
Returns: CAGR in % (50 is 50%). Returns `na` if there is not >=1D between `entryTime` and `exitTime`, or until the two time points have not been reached by the script.
█ v2, Mar. 8, 2022
Added functions `allTimeHigh()` and `allTimeLow()` to find the highest or lowest value of a source from the first historical bar to the current bar. These functions will not look ahead; they will only return new highs/lows on the bar where they occur.
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `high`.
Returns: (float) The highest value tracked.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `low`.
Returns: (float) The lowest value tracked.
█ v3, Sept. 27, 2022
This version includes the following new functions:
aroon(length)
Calculates the values of the Aroon indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the Aroon-Up and Aroon-Down values.
coppock(source, longLength, shortLength, smoothLength)
Calculates the value of the Coppock Curve indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
longLength (simple int) : (simple int) Number of bars for the fast ROC value (length).
shortLength (simple int) : (simple int) Number of bars for the slow ROC value (length).
smoothLength (simple int) : (simple int) Number of bars for the weigted moving average value (length).
Returns: (float) The oscillator value.
dema(source, length)
Calculates the value of the Double Exponential Moving Average (DEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `source`.
dema2(src, length)
An alternate Double Exponential Moving Average (Dema) function to `dema()`, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `src`.
dm(length)
Calculates the value of the "Demarker" indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
ema2(src, length)
An alternate ema function to the `ta.ema()` built-in, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Number of bars (length).
Returns: (float) The exponentially weighted moving average of the `src`.
eom(length, div)
Calculates the value of the Ease of Movement indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
div (simple int) : (simple int) Divisor used for normalzing values. Optional. The default is 10000.
Returns: (float) The oscillator value.
frama(source, length)
The Fractal Adaptive Moving Average (FRAMA), developed by John Ehlers, is an adaptive moving average that dynamically adjusts its lookback period based on fractal geometry.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The fractal adaptive moving average of the `source`.
ft(source, length)
Calculates the value of the Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
ht(source)
Calculates the value of the Hilbert Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
ichimoku(conLength, baseLength, senkouLength)
Calculates values of the Ichimoku Cloud indicator, including tenkan, kijun, senkouSpan1, senkouSpan2, and chikou. NOTE: offsets forward or backward can be done using the `offset` argument in `plot()`.
Parameters:
conLength (int) : (series int) Length for the Conversion Line (Tenkan). The default is 9 periods, which returns the mid-point of the 9 period Donchian Channel.
baseLength (int) : (series int) Length for the Base Line (Kijun-sen). The default is 26 periods, which returns the mid-point of the 26 period Donchian Channel.
senkouLength (int) : (series int) Length for the Senkou Span 2 (Leading Span B). The default is 52 periods, which returns the mid-point of the 52 period Donchian Channel.
Returns: ( [float, float, float, float, float ]) A tuple of the Tenkan, Kijun, Senkou Span 1, Senkou Span 2, and Chikou Span values. NOTE: by default, the senkouSpan1 and senkouSpan2 should be plotted 26 periods in the future, and the Chikou Span plotted 26 days in the past.
ift(source)
Calculates the value of the Inverse Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
kvo(fastLen, slowLen, trigLen)
Calculates the values of the Klinger Volume Oscillator.
Parameters:
fastLen (simple int) : (simple int) Length for the fast moving average smoothing parameter calculation.
slowLen (simple int) : (simple int) Length for the slow moving average smoothing parameter calculation.
trigLen (simple int) : (simple int) Length for the trigger moving average smoothing parameter calculation.
Returns: ( [float, float ]) A tuple of the KVO value, and the trigger value.
pzo(length)
Calculates the value of the Price Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
rms(source, length)
Calculates the Root Mean Square of the `source` over the `length`.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The RMS value.
rwi(length)
Calculates the values of the Random Walk Index.
Parameters:
length (simple int) : (simple int) Lookback and ATR smoothing parameter length.
Returns: ( [float, float ]) A tuple of the `rwiHigh` and `rwiLow` values.
stc(source, fast, slow, cycle, d1, d2)
Calculates the value of the Schaff Trend Cycle indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
fast (simple int) : (simple int) Length for the MACD fast smoothing parameter calculation.
slow (simple int) : (simple int) Length for the MACD slow smoothing parameter calculation.
cycle (simple int) : (simple int) Number of bars for the Stochastic values (length).
d1 (simple int) : (simple int) Length for the initial %D smoothing parameter calculation.
d2 (simple int) : (simple int) Length for the final %D smoothing parameter calculation.
Returns: (float) The oscillator value.
stochFull(periodK, smoothK, periodD)
Calculates the %K and %D values of the Full Stochastic indicator.
Parameters:
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
stochRsi(lengthRsi, periodK, smoothK, periodD, source)
Calculates the %K and %D values of the Stochastic RSI indicator.
Parameters:
lengthRsi (simple int) : (simple int) Length for the RSI smoothing parameter calculation.
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
source (float) : (series int/float) Series of values to process. Optional. The default is `close`.
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
supertrend(factor, atrLength, wicks)
Calculates the values of the SuperTrend indicator with the ability to take candle wicks into account, rather than only the closing price.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is false.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
szo(source, length)
Calculates the value of the Sentiment Zone Oscillator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
t3(source, length, vf)
Calculates the value of the Tilson Moving Average (T3).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
t3Alt(source, length, vf)
An alternate Tilson Moving Average (T3) function to `t3()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
tema(source, length)
Calculates the value of the Triple Exponential Moving Average (TEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
tema2(source, length)
An alternate Triple Exponential Moving Average (TEMA) function to `tema()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
trima(source, length)
Calculates the value of the Triangular Moving Average (TRIMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `source`.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a "series int" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `src`.
trix(source, length, signalLength, exponential)
Calculates the values of the TRIX indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
signalLength (simple int) : (simple int) Length for smoothing the signal line.
exponential (simple bool) : (simple bool) Condition to determine whether exponential or simple smoothing is used. Optional. The default is `true` (exponential smoothing).
Returns: ( [float, float, float ]) A tuple of the TRIX value, the signal value, and the histogram.
uo(fastLen, midLen, slowLen)
Calculates the value of the Ultimate Oscillator.
Parameters:
fastLen (simple int) : (series int) Number of bars for the fast smoothing average (length).
midLen (simple int) : (series int) Number of bars for the middle smoothing average (length).
slowLen (simple int) : (series int) Number of bars for the slow smoothing average (length).
Returns: (float) The oscillator value.
vhf(source, length)
Calculates the value of the Vertical Horizontal Filter.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
vi(length)
Calculates the values of the Vortex Indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the viPlus and viMinus values.
vzo(length)
Calculates the value of the Volume Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
williamsFractal(period)
Detects Williams Fractals.
Parameters:
period (int) : (series int) Number of bars (length).
Returns: ( [bool, bool ]) A tuple of an up fractal and down fractal. Variables are true when detected.
wpo(length)
Calculates the value of the Wave Period Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
█ v7, Nov. 2, 2023
This version includes the following new and updated functions:
atr2(length)
An alternate ATR function to the `ta.atr()` built-in, which allows a "series float" `length` argument.
Parameters:
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The ATR value.
changePercent(newValue, oldValue)
Calculates the percentage difference between two distinct values.
Parameters:
newValue (float) : (series int/float) The current value.
oldValue (float) : (series int/float) The previous value.
Returns: (float) The percentage change from the `oldValue` to the `newValue`.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
highestSince(cond, source)
Tracks the highest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the highest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `high`.
Returns: (float) The highest `source` value since the last time the `cond` was `true`.
lowestSince(cond, source)
Tracks the lowest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the lowest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `low`.
Returns: (float) The lowest `source` value since the last time the `cond` was `true`.
relativeVolume(length, anchorTimeframe, isCumulative, adjustRealtime)
Calculates the volume since the last change in the time value from the `anchorTimeframe`, the historical average volume using bars from past periods that have the same relative time offset as the current bar from the start of its period, and the ratio of these volumes. The volume values are cumulative by default, but can be adjusted to non-accumulated with the `isCumulative` parameter.
Parameters:
length (simple int) : (simple int) The number of periods to use for the historical average calculation.
anchorTimeframe (simple string) : (simple string) The anchor timeframe used in the calculation. Optional. Default is "D".
isCumulative (simple bool) : (simple bool) If `true`, the volume values will be accumulated since the start of the last `anchorTimeframe`. If `false`, values will be used without accumulation. Optional. The default is `true`.
adjustRealtime (simple bool) : (simple bool) If `true`, estimates the cumulative value on unclosed bars based on the data since the last `anchor` condition. Optional. The default is `false`.
Returns: ( [float, float, float ]) A tuple of three float values. The first element is the current volume. The second is the average of volumes at equivalent time offsets from past anchors over the specified number of periods. The third is the ratio of the current volume to the historical average volume.
rma2(source, length)
An alternate RMA function to the `ta.rma()` built-in, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The rolling moving average of the `source`.
supertrend2(factor, atrLength, wicks)
An alternate SuperTrend function to `supertrend()`, which allows a "series float" `atrLength` argument.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is `false`.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
vStop(source, atrLength, atrFactor)
Calculates an ATR-based stop value that trails behind the `source`. Can serve as a possible stop-loss guide and trend identifier.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
vStop2(source, atrLength, atrFactor)
An alternate Volatility Stop function to `vStop()`, which allows a "series float" `atrLength` argument.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
Removed Functions:
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a
"series int" length argument.
My:HTF O/H/L/C█ MY Higher Time Frame Open / High / Low / Close
This indicator shows one line per Higher Time Frame Price of Interest.
We are interested to know whether we are currently seeing support or resistance at previous daily / weekly / monthly price of interest.
Each price of interest can be displayed or hidden in the configuration. Each line has a label attached to it with the (short) label on it to help identifying what is this line.
Price of interest with (short) label :
Current Daily Open (CDO)
Current Daily High (CDH)
Current Daily Low (CDL)
Previous Daily Open (PDO)
Previous Daily High (PDH)
Previous Daily Low (PDL)
Previous Daily Close (PDC)
Current Weekly Open (CWO)
Current Weekly High (CWH)
Current Weekly Low (CWL)
Previous Weekly Open (PWO)
Previous Weekly High (PWH)
Previous Weekly Low (PWL)
Previous Weekly Close (PWC)
Current Monthly Open (CMO)
Current Monthly High (CMH)
Current Monthly Low (CML)
Previous Monthly Open (PMO)
Previous Monthly High (PMH)
Previous Monthly Low (PML)
Previous Monthly Close (PMC)
Volume EffectivenessI have been trying to work with volume as an indicator for quite some time, as it holds qualities as a 'leading indicator'.
However, please note that any indicator which to some extent predict a future trend has its issues as it can be misleading.
But, in some datasets in a selected timeframe the leading properties of volume as an indicator are useful.
So this script is not too complicated. It shows a numeric which resembles the 'effectiveness of volume' in moving price.
For example, if a small volume creates a large price change - the Volume Effectiveness indicator will be high and show a spike
Whereas, if a large volume creates a small price change - the Volume Effectiveness indicator will be low
I used 3 metrics to represent Volume Effectiveness (these are different colors on the bar chart)
One price difference is the absolute(high - low) for each bar
Another is the absolute(open - close)
The 'open-close' is smaller than the 'high-low', so note this when viewing the bar charts
The final metric depends on if the open is greater than the close or vice-versa
But it considers the 'absolute(high-low)' and the difference between the open and the high (or low) and the close and the low (or high)
So the final metric is the largest of the 3 metrics and is generally the most useful of the 3 however, the other 2 are displayed to provide a better understanding of what 'Volume Effectiveness' displays
Note, I use absolute values so they are only positive, i.e. there are no negative values to represent a price drop within a bar
So, why is this indicator useful - its because volume is a leading indicator
A decreasing volume tends to suggest a price change is coming
Also, when the volume within a bar is very small, its Volume Effectiveness tends to go very high
That means a small trade volume creates a relatively large change in price
This is ideal conditions for a big pump (or big dump - although this indicator seems to work better before pumps)
A large spike in the Volume Effectiveness is commonly/sometimes preceding a big pump
So watch this indicator - and if there is a big spike - evaluate other market conditions to consider getting into position
Large spikes in the Volume Effectiveness can precede big price changes and therefore can provide a leading indication before a pump or dump
Timeframe is important - I found on the daily timeframe this indicator did not provide sufficient lead to be useful. Similarly on the <15min timeframe the spikes were not highly correlated with pumps/dumps
However, in medium timeframes (15mins, 1hour, 4hours) this indicator can be useful for predicting sizeable price changes.
HhLl-OscilatorSimple oscillator which checks how many highs and how many lows the price is making. Parameters are as explained below:
lookback - Checks how many highs and lows it is making in these many bars. Sum of all highs and lows are taken for plotting.
periods - Initial period to check high and lows
multiples - Number of multiples on initial period for which highs and lows are checked
colorCandles - CandleColor based on the oscillator
If periods is 20 and multiples is 5 and loopback is 10
Indicator checks for last 10 bars how many highs/lows are made for 20, 40, 60, 80 and 100 periods. Sum of all highs and lows are plotted on the oscillator overlay
Expanded Floor PivotsHello Everyone,
The Expanded Floor Pivots is introduced in the book "Secrets of a Pivot Boss: Revealing Proven Methods for Profiting in the Market " by Franklin Ochoa. He added four new levels: S4, R4, BC and TC. There are many great ideas in the book, such using these levels, following trend, time price opportunity and much more. (Thanks to @tonyjab for pushing me to read this book)
The definition/formula of the levels defined in the book:
r1 = 2 * pivot - Low
r2 = pivot + (High - Low)
r3 = r1 + (High - Low)
r4 = r3 + (r2 - r1)
tc = (pivot - bc) + pivot
pivot = (High + Low + Close) / 3
bc = (High + Low) / 2
s1 = 2 * pivot - High
s2 = pivot - (High - Low)
s3 = s1 - (High - Low)
s4 = s3 - (s1 - s2)
The area between TC and BC is used as Pivot Channel, (blue area in the chart). you can see how it helps on identifying the trend.
Options:
By default the script decides Higher Time Frame but if you want you can set HTF as you wish.
You can choose line style as: Solid, Circles or Cross
and also you have option to show only last period or all historical levels.
Enjoy!
Volume Profile Free Ultra SLI (100 Levels Value Area VWAP) - RRBVolume Profile Free Ultra SLI by RagingRocketBull 2019
Version 1.0
This indicator calculates Volume Profile for a given range and shows it as a histogram consisting of 100 horizontal bars.
This is basically the MAX SLI version with +50 more Pinescript v4 line objects added as levels.
It can also show Point of Control (POC), Developing POC, Value Area/VWAP StdDev High/Low as dynamically moving levels.
Free accounts can't access Standard TradingView Volume Profile, hence this indicator.
There are several versions: Free Pro, Free MAX SLI, Free Ultra SLI, Free History. This is the Free Ultra SLI version. The Differences are listed below:
- Free Pro: 25 levels, +Developing POC, Value Area/VWAP High/Low Levels, Above/Below Area Dimming
- Free MAX SLI: 50 levels, 2x SLI modes for Buy/Sell or even higher res 150 levels
- Free Ultra SLI: 100 levels, packed to the limit, 2x SLI modes for Buy/Sell or even higher res 300 levels
- Free History: auto highest/lowest, historic poc/va levels for each session
Features:
- High-Res Volume Profile with up to 100 levels (line implementation)
- 2x SLI modes for even higher res: 300 levels with 3x vertical SLI, 100 buy/sell levels with 2x horiz SLI
- Calculate Volume Profile on full history
- POC, Developing POC Levels
- Buy/Sell/Total volume modes
- Side Cover
- Value Area, VAH/VAL dynamic levels
- VWAP High/Low dynamic levels with Source, Length, StdDev as params
- Show/Hide all levels
- Dim Non Value Area Zones
- Custom Range with Highlighting
- 3 Anchor points for Volume Profile
- Flip Levels Horizontally
- Adjustable width, offset and spacing of levels
- Custom Color for POC/VA/VWAP levels, Transparency for buy/sell levels
WARNING:
- Compilation Time: 1 min 20 sec
Usage:
- specify max_level/min_level/spacing (required)
- select range (start_bar, range length), confirm with range highlighting
- select volume type: Buy/Sell/Total
- select mode Value Area/VWAP to show corresponding levels
- flip/select anchor point to position the buy/sell levels
- use Horiz Buy/Sell SLI mode with 100 or Vertical SLI with 300 levels if needed
- use POC/Developing POC/VA/VWAP High/Low as S/R levels. Usually daily values from 1-3 days back are used as levels for the current day.
SLI:
use SLI modes to extend the functionality of the indicator:
- Horiz Buy/Sell 2x SLI lets you view 100 Buy/Sell Levels at the same time
- Vertical Max_Vol 3x SLI lets you increase the resolution to 300 levels
- you need at least 2 instances of the indicator attached to the same chart for SLI to work
1) Enable Horiz SLI:
- attach 2 indicator instances to the chart
- make sure all instances have the same min_level/max_level/range/spacing settings
- select volume type for each instance: you can have a buy/sell or buy/total or sell/total SLI. Make sure your buy volume instance is the last attached to be displayed on top of sell/total instances without overlapping.
- set buy_sell_sli_mode to true for indicator instances with volume_type = buy/sell, for type total this is optional.
- this basically tells the script to calculate % lengths based on total volume instead of individual buy/sell volumes and use ext offset for sell levels
- Sell Offset is calculated relative to Buy Offset to stack/extend sell after buy. Buy Offset = Zero - Buy Length. Sell Offset = Buy Offset - Sell Length = Zero - Buy Length - Sell Length
- there are no master/slave instances in this mode, all indicators are equal, poc/va levels are not affected and can work independently, i.e. one instance can show va levels, another - vwap.
2) Enable Vertical SLI:
- attach the first instance and evaluate the full range to roughly determine where is the highest max_vol/poc level i.e. 0..20000, poc is in the bottom half (third, middle etc) or
- add more instances and split the full vertical range between them, i.e. set min_level/max_level of each corresponding instance to 0..10000, 10000..20000 etc
- make sure all instances have the same range/spacing settings
- an instance with a subrange containing the poc level of the full range is now your master instance (bottom half). All other instances are slaves, their levels will be calculated based on the max_vol/poc of the master instance instead of local values
- set show_max_vol_sli to true for the master instance. for slave instances this is optional and can be used to check if master/slave max_vol values match and slave can read the master's value. This simply plots the max_vol value
- you can also attach all instances and set show_max_vol_sli to true in all of them - the instance with the largest max_vol should become the master
Auto/Manual Ext Max_Vol Modes:
- for auto vertical max_vol SLI mode set max_vol_sli_src in all slave instances to the max_vol of the master indicator: "VolumeProfileFree_MAX_RRB: Max Volume for Vertical SLI Mode". It can be tricky with 2+ instances
- in case auto SLI mode doesn't work - assign max_vol_sli_ext in all slave instances the max_vol value of the master indicator manually and repeat on each change
- manual override max_vol_sli_ext has higher priority than auto max_vol_sli_src when both values are assigned, when they are 0 and close respectively - SLI is disabled
- master/slave max_vol values must match on each bar at all times to maintain proper level scale, otherwise slave's levels will look larger than they should relative to the master's levels.
- Max_vol (red) is the last param in the long list of indicator outputs
- the only true max_vol/poc in this SLI mode is the master's max_vol/poc. All poc/va levels in slaves will be irrelevant and are disabled automatically. Slaves can only show VWAP levels.
- VA Levels of the master instance in this SLI mode are calculated based on the subrange, not the whole range and may be inaccurate. Cross check with the full range.
WARNING!
- auto mode max_vol_sli_src is experimental and may not work as expected
- you can only assign auto mode max_vol_sli_src = max_vol once due to some bug with unhandled exception/buffer overflow in Tradingview. Seems that you can clear the value only by removing the indicator instance
- sometimes you may see a "study in error state" error when attempting to set it back to close. Remove indicator/Reload chart and start from scratch
- volume profile may not finish to redraw and freeze in an ugly shape after an UI parameter change when max_vol_sli_src is assigned a max_vol value. Assign it to close - VP should redraw properly, but it may not clear the assigned max_vol value
- you can't seem to be able to assign a proper auto max_vol value to the 3rd slave instance
- 2x Vertical SLI works and tested in both auto/manual, 3x SLI - only manual seems to work (you can have a mixed mode: 2nd instance - auto, 3rd - manual)
Notes:
- This code uses Pinescript v3 compatibility framework
- This code is 20x-30x faster (main for cycle is removed) especially on lower tfs with long history - only 4-5 sec load/redraw time vs 30-60 sec of the old Pro versions
- Instead of repeatedly calculating the total sum of volumes for the whole range on each bar, vol sums are now increased on each bar and passed to the next in the range making it a per range vs per bar calculation that reduces time dramatically
- 100 levels consist of 50 main plot levels and 50 line objects used as alternate levels, differences are:
- line objects are always shown on top of other objects, such as plot levels, zero line and side cover, it's not possible to cover/move them below.
- all line objects have variable lengths, use actual x,y coords and don't need side cover, while all plot levels have a fixed length of 100 bars, use offset and require cover.
- all key properties of line objects, such as x,y coords, color can be modified, objects can be moved/deleted, while this is not possible for static plot levels.
- large width values cause line objects to expand only up/down from center while their length remains the same and stays within the level's start/end points similar to an area style.
- large width values make plot levels expand in all directions (both h/v), beyond level start/end points, sometimes overlapping zero line, making them an inaccurate % length representation, as opposed to line objects/plot levels with area style.
- large width values translate into different widths on screen for line objects and plot levels.
- you can't compensate for this unwanted horiz width expansion of plot levels because width uses its own units, that don't translate into bars/pixels.
- line objects are visible only when num_levels > 50, plot levels are used otherwise
- Since line objects are lines, plot levels also use style line because other style implementations will break the symmetry/spacing between levels.
- if you don't see a volume profile check range settings: min_level/max_level and spacing, set spacing to 0 (or adjust accordingly based on the symbol's precision, i.e. 0.00001)
- you can view either of Buy/Sell/Total volumes, but you can't display Buy/Sell levels at the same time using a single instance (this would 2x reduce the number of levels). Use 2 indicator instances in horiz buy/sell sli mode for that.
- Volume Profile/Value Area are calculated for a given range and updated on each bar. Each level has a fixed length. Offsets control visible level parts. Side Cover hides the invisible parts.
- Custom Color for POC/VA/VWAP levels - UI Style color/transparency can only change shape's color and doesn't affect textcolor, hence this additional option
- Custom Width - UI Style supports only width <= 4, hence this additional option
- POC is visible in both modes. In VWAP mode Developing POC becomes VWAP, VA High and Low => VWAP High and Low correspondingly to minimize the number of plot outputs
- You can't change buy/sell level colors from input (only transparency) - this requires 2x plot outputs => 2x reduces the number of levels to fit the max 64 limit. That's why 2 additional plots are used to dim the non Value Area zones
- You can change level transparency of line objects. Due to Pinescript limitations, only discrete values are supported.
- Inverse transp correlation creates the necessary illusion of "covered" line objects, although they are shown on top of the cover all the time
- If custom lines_transp is set the illusion will break because transp range can't be skewed easily (i.e. transp 0..100 is always mapped to 100..0 and can't be mapped to 50..0)
- transparency can applied to lines dynamically but nva top zone can't be completely removed because plot/mixed type of levels are still used when num_levels < 50 and require cover
- transparency can't be applied to plot levels dynamically from script this can be done only once from UI, and you can't change plot color for the past length bars
- All buy/sell volume lengths are calculated as % of a fixed base width = 100 bars (100%). You can't set show_last from input to change it
- Range selection/Anchoring is not accurate on charts with time gaps since you can only anchor from a point in the future and measure distance in time periods, not actual bars, and there's no way of knowing the number of future gaps in advance.
- Adjust Width for Log Scale mode now also works on high precision charts with small prices (i.e. 0.00001)
- in Adjust Width for Log Scale mode Level1 width extremes can be capped using max deviation (when level1 = 0, shift = 0 width becomes infinite)
- There's no such thing as buy/sell volume, there's just volume, but for the purposes of the Volume Profile method, assume: bull candle = buy volume, bear candle = sell volume
P.S. I am your grandfather, Luke! Now, join the Dark Side in your father's steps or be destroyed! Once more the Sith will rule the Galaxy, and we shall have peace...
EMA Buy/Sell & Smart Zones(5Min TF only)### **Indicator Title:**
**EMA Buy/Sell & Smart Zones**
---
### **Description:**
**EMA Buy/Sell & Smart Zones** is a specialized intraday trading tool designed to combine trend analysis with precise market structure zones. This script utilizes a custom tracking algorithm to identify the **specific candle** that formed the previous session's high or low, allowing it to plot accurate Supply and Demand zones for the current trading day.
This indicator has been rigorously tested on the **Nifty Index** and is optimized for use on the **5-minute timeframe**.
### **Key Features**
**1. Smart Session Wick Zones ("True Wick" Logic)**
The indicator automatically scans every candle of the previous session to locate the exact price action that formed the day's extremes.
* **Smart High Zone:** Identifies the specific candle that made yesterday's High and plots a zone from that High down to that candle's Open or Close (based on body direction).
* **Smart Low Zone:** Identifies the specific candle that made yesterday's Low and plots a zone from that Low up to that candle's Open or Close.
* **Close Range:** Highlights the High-Low range of the very last candle of the previous session to show the closing sentiment.
*All zones automatically stop extending at the end of the current session, ensuring the chart remains clean and historically accurate.*
**2. EMA Trend System**
The script plots three key Exponential Moving Averages to define market direction:
* **EMA 21:** Captures short-term momentum.
* **EMA 63:** Defines the medium-term trend.
* **EMA 1575:** Establishes the long-term baseline.
**3. Buy/Sell Signals**
Clear signals are generated on the chart based on specific criteria:
* **BUY Signal:** Generated when a green candle closes above the EMA 21 and EMA 63.
* **SELL Signal:** Generated when a red candle closes below the EMA 21 and EMA 63.
* *Note: The logic includes a filter to alternate signals (Buy -> Sell -> Buy), preventing clutter during choppy markets.*
### **How to Use**
* **Recommended Timeframe:** **5 Minutes**.
* **Recommended Markets:** Indices (Nifty, Bank Nifty) and high-volume stocks.
* **Workflow:**
* Use the **Smart Zones** (Red/Green boxes) to identify potential rejection areas or breakout targets.
* Use the **Buy/Sell Labels** as confirmation triggers when price is reacting near these zones or trending strongly above/below the EMAs.
### **Settings & Customization**
* **Visibility Control:** Toggle each box type (High, Low, Close) and text labels on or off individually.
* **Color Customization:** Fully adjustable colors for all EMAs, Zone Backgrounds, Borders, and Text Labels to suit your chart theme.
* **Label Size:** Adjust the text size of the zone labels directly from the settings menu.
---
**Disclaimer:** This tool is for educational purposes and should be used to assist your analysis. Always manage your risk appropriately.
Smart Wedge Pattern [The_lurker]🔺 Smart Wedge Pattern نموذج الوتد الذكي
Advanced & Intelligent Wedge Detection Engine
This is not a traditional indicator that simply draws wedge lines — it is a comprehensive intelligent engine (system) for detecting and analyzing wedge patterns (Rising & Falling Wedge) based on price geometry, market context, and statistical quality of the pattern.
This indicator was designed to address the biggest problems in common wedge indicators:
❌ Too many false patterns
❌ Ignoring prior trend
❌ No real quality assessment for patterns
A comprehensive intelligent system that combines:
Adaptive algorithm that self-calibrates automatically according to market conditions
7 strict validation layers that filter out weak patterns and keep only the highest quality
Quality scoring system that evaluates each pattern from 0 to 100
3D visualization that makes patterns visually clear in an exceptional way
Smart targets based on Fibonacci ratios with real-time achievement tracking
The Result:
➡️ Fewer patterns
➡️ Cleaner, more accurate and reliable signals
➡️ Higher quality
➡️ Real practical use
═════════════════════════════════════════════════════════════
🎯 What Are Wedge Patterns?
1- Falling Wedge — Bullish Reversal Pattern
The falling wedge forms when price moves in a converging downward channel — meaning both the upper resistance line and the lower support line are declining, but the support line declines at a less steep angle, gradually narrowing the channel.
Why does the bullish breakout occur?
Declining highs show continuous selling pressure
But rising lows (P2 < P4) reveal that buyers are entering at higher levels
Convergence indicates decreasing bearish momentum
At a certain point, buying pressure overcomes and the breakout occurs
2- Rising Wedge — Bearish Reversal Pattern
The rising wedge is the exact opposite of the falling wedge — a converging upward channel where both lines rise, but the resistance line rises at a less steep angle.
Why does the bearish breakout occur?
Rising lows show continuous buying pressure
But declining highs (P2 > P4) reveal that sellers are entering at lower levels
Convergence indicates decreasing bullish momentum
At a certain point, selling pressure overcomes and the breakout occurs
═════════════════════════════════════════════════════════════
🧠 Adaptive Pivot System — The Heart of the Smart Indicator
The Problem with Traditional Indicators
Traditional indicators use a fixed value for pivot detection (like 5 bars left and 5 bars right). This means:
In quiet markets → Many delayed signals
In volatile markets → Few missed signals
No adaptation to the nature of each market or timeframe
The Solution: Smart Adaptation Algorithm
The indicator calculates optimal pivot sensitivity on each bar using 5 weighted factors:
Final Score = (Volatility_Score × 0.30) + (Trend_Score × 0.25) +
(Stability_Score × 0.20) + (Percentile_Context × 0.15) +
(Range_Score × 0.10)
Factor Weight How It's Calculated Why It's Important
Volatility Score 30% ATR(10) / ATR(50) Detects sudden changes in volatility
Trend Score 25% ADX(14) / 50 Trending markets need different sensitivity
Stability Score 20% StdDev(ATR) / Mean(ATR) Measures volatility consistency
Percentile Context 15% ATR / Percentile(ATR, 50) Places volatility in historical context
Range Score 10% Current_Range / Average_Range Detects unusual bars
The Result: The indicator uses low sensitivity (fewer, more important pivots) in quiet markets, and high sensitivity (more pivots, faster response) in volatile markets (more accurate pivots = correct geometric patterns).
═════════════════════════════════════════════════════════════
✅ Seven Validation Layers — Why This Indicator Is Different
Every detected pattern passes through 7 strict tests before being displayed:
1- Geometric Structure Validation
Validates:
P1 precedes P2 precedes P3 precedes P4 chronologically
Distance between each two points ≥ minimum threshold
Pattern width (P1→P4) within allowed range
Highs and lows order is correct for the wedge type
2- True Convergence Check
A true wedge must show convergence:
├── Gap at P4 < Gap at P1
├── Convergence ratio = End_Gap / Start_Gap
└── Ratio must be < defined convergence threshold (default 75%)
3- Slope Validation
For Falling Wedge:
├── Resistance line slope < 0 (declining)
├── Support line slope < 0 (declining)
└── Resistance slope < Support slope (convergence)
For Rising Wedge:
├── Resistance line slope > 0 (rising)
├── Support line slope > 0 (rising)
└── Support slope > Resistance slope (convergence)
4- Prior Trend Filter
Reversal patterns need a prior trend to reverse from:
├── Measures price movement during a defined period before P1
├── Normalizes movement using ATR for fair comparison
├── Falling wedge requires prior downtrend
└── Rising wedge requires prior uptrend
5- Channel Respect
Normal mode (close check):
└── Every close between P1 and P4 must be within wedge boundaries
Strict mode (high/low check):
├── Every high must be below resistance line (+ tolerance)
└── Every low must be above support line (- tolerance)
6- Post-P4 Validation
After the fourth point forms:
├── For falling wedge: Price doesn't break support or drop below P4
└── For rising wedge: Price doesn't break resistance or rise above P4
7- Quality Scoring System
Quality = (Convergence_Score × 0.30) + (Slope_Score × 0.25) +
(Width_Score × 0.20) + (Trend_Score × 0.15) +
(Height_Score × 0.10)
├── Convergence Score: More convergence = higher quality
├── Slope Score: Consistency of upper and lower line slopes
├── Width Score: Patterns with 40-100 bar width are ideal
├── Trend Score: Prior trend strength
└── Height Score: Pattern height relative to ATR
═════════════════════════════════════════════════════════════
✅ Pattern Lifecycle Management
The indicator doesn't just draw and disappear — it follows the complete pattern:
Pattern detection
Post-fourth point monitoring
Breakout confirmation
Target calculation
Target achievement tracking
Success or cancellation marking
❌ Pattern is automatically cancelled if:
Breakout fails
Channel is broken in reverse direction
Waiting period exceeded
═════════════════════════════════════════════════════════════
✅ Smart Targets + Success Level
After breakout:
Target is calculated based on pattern height
3 target modes:
Conservative (0.618)
Balanced (1.0)
Aggressive (1.618)
Independent Success level to measure move strength before target
═════════════════════════════════════════════════════════════
🎨 Advanced Visual Display (3D Visualization)
Three-dimensional pattern representation
Visual depth reflecting pattern size
3D target zone
Dynamic colors upon target achievement
🎨 The purpose of 3D is not decoration
But reading the pattern visually with speed and clarity
═════════════════════════════════════════════════════════════
⚙️ Key Features
✅ Automatic wedge detection
✅ Smart filtering reduces false signals
✅ Real quality assessment for each pattern
✅ Realistic and customizable targets
✅ Full support for Rising & Falling Wedge
✅ Works on all markets and timeframes
✅ Professional design and high performance
═════════════════════════════════════════════════════════════
📊 Usage Scenarios
🟢 Scalping
Timeframes: 1–15 minutes
Quality ≥ 60
Conservative targets
🔵 Day Trading
Timeframes: 15m–1h
Quality ≥ 50
Balanced targets
🟣 Swing Trading
Timeframes: 4h–Daily
Quality ≥ 40
Strict channel
Aggressive targets
🟠 Cryptocurrencies
Strict convergence
Strict channel
Quality ≥ 65
═════════════════════════════════════════════════════════════
🔔 Alerts
Falling wedge breakout ⇒ Buy
Rising wedge breakout ⇒ Sell
Any wedge breakout
═════════════════════════════════════════════════════════════
⚠️ Disclaimer
This indicator is for educational and analytical purposes only. It does not represent financial, investment, or trading advice. Use it in conjunction with your own strategy and risk management. Neither TradingView nor the developer is responsible for any financial decisions or losses.
═════════════════════════════════════════════════════════════
🔺 Smart Wedge Pattern نموذج الوتد الذكي
Advanced & Intelligent Wedge Detection Engine
ليس مؤشرًا تقليديًا يرسم خطوط وتد فقط ، بل هو محرك (نظام) ذكي متكامل لاكتشاف وتحليل نماذج الوتد (Rising & Falling Wedge) اعتمادًا على الهندسة السعرية ، السياق السوقي ، والجودة الإحصائية للنموذج.
تم تصميم هذا المؤشر لمعالجة أكبر مشكلة في مؤشرات الوتد الشائعة:
❌ كثرة النماذج الوهمية
❌ تجاهل الاتجاه السابق
❌ عدم وجود تقييم حقيقي لجودة النموذج
نظام ذكي متكامل يجمع بين:
خوارزمية تكيفية تُعاير نفسها تلقائياً حسب ظروف السوق
7 طبقات تحقق صارمة تُصفّي الأنماط الضعيفة وتُبقي فقط الأعلى جودة
نظام تسجيل جودة يُقيّم كل نموذج من 0 إلى 100
تصور ثلاثي الأبعاد يجعل الأنماط واضحة بصرياً بشكل استثنائي
أهداف ذكية مبنية على نسب فيبوناتشي مع تتبع التحقق الآني
النتيجة:
➡️ نماذج أقل
➡️ إشارات أنظف أكثر دقة وموثوقية
➡️ جودة أعلى
➡️ استخدام عملي حقيقي
═════════════════════════════════════════════════════════════
🎯 ما هي نماذج الأوتاد؟
1- الوتد الهابط (Falling Wedge) — نموذج انعكاسي صعودي
الوتد الهابط يتشكل عندما يتحرك السعر في قناة هابطة متقاربة — أي أن خط المقاومة العلوي وخط الدعم السفلي كلاهما يهبطان، لكن خط الدعم يهبط بزاوية أقل حدة، مما يُضيّق القناة تدريجياً.
لماذا يحدث الكسر الصعودي؟
القمم الهابطة تُظهر ضغطاً بيعياً مستمراً
لكن القيعان الصاعدة (P2 < P4) تكشف أن المشترين يدخلون عند مستويات أعلى
التقارب يُشير إلى تناقص الزخم الهبوطي
عند نقطة معينة، يتغلب ضغط الشراء ويحدث الكسر
2- الوتد الصاعد (Rising Wedge) — نموذج انعكاسي هبوطي
الوتد الصاعد هو عكس الهابط تماماً — قناة صاعدة متقاربة حيث يصعد كلا الخطين، لكن خط المقاومة يصعد بزاوية أقل حدة.
لماذا يحدث الكسر الهبوطي؟
القيعان الصاعدة تُظهر ضغطاً شرائياً مستمراً
لكن القمم الهابطة (P2 > P4) تكشف أن البائعين يدخلون عند مستويات أدنى
التقارب يُشير إلى تناقص الزخم الصعودي
عند نقطة معينة، يتغلب ضغط البيع ويحدث الكسر
═════════════════════════════════════════════════════════════
🧠 نظام المحاور التكيفي — قلب المؤشر الذكي
المشكلة مع المؤشرات التقليدية
المؤشرات التقليدية تستخدم قيمة ثابتة لاكتشاف المحاور (مثل 5 شموع يسار و5 شموع يمين). هذا يعني:
في الأسواق الهادئة → إشارات كثيرة ومتأخرة
في الأسواق المتقلبة → إشارات قليلة وضائعة
لا تكيف مع طبيعة كل سوق أو إطار زمني
الحل: خوارزمية التكيف الذكي
المؤشر يحسب حساسية المحور المثلى في كل شمعة باستخدام 5 عوامل مرجحة:
النتيجة النهائية = (درجة_التقلب × 0.30) + (درجة_الاتجاه × 0.25) +
(درجة_الاستقرار × 0.20) + (السياق_المئوي × 0.15) +
(درجة_النطاق × 0.10)
العامل الوزن كيف يُحسب لماذا مهم
درجة التقلب 30% ATR(10) / ATR(50) يكشف التغير المفاجئ في التقلب
درجة الاتجاه 25% ADX(14) / 50 الأسواق الاتجاهية تحتاج حساسية مختلفة
درجة الاستقرار 20% StdDev(ATR) / Mean(ATR) يقيس ثبات التقلب
السياق المئوي 15% ATR / Percentile(ATR, 50) يضع التقلب في سياقه التاريخي
درجة النطاق 10% النطاق_الحالي / متوسط_النطاق يكشف الشموع غير العادية
النتيجة: المؤشر يستخدم حساسية منخفضة (محاور أقل، أكثر أهمية) في الأسواق الهادئة، وحساسية عالية (محاور أكثر، استجابة أسرع) في الأسواق المتقلبة (محاور أدق = نماذج هندسية صحيحة).
═════════════════════════════════════════════════════════════
✅ طبقات التحقق السبع — لماذا هذا المؤشر مختلف
كل نموذج مُكتشف يمر عبر 7 اختبارات صارمة قبل عرضه:
1- التحقق من البنية الهندسية
يتحقق من:
P1 يسبق P2 يسبق P3 يسبق P4 زمنياً
المسافة بين كل نقطتين ≥ الحد الأدنى المحدد
عرض النموذج (P1→P4) ضمن النطاق المسموح
ترتيب القمم والقيعان صحيح حسب نوع الوتد
2- فحص التقارب الحقيقي
الوتد الحقيقي يجب أن يُظهر تقارباً:
├── الفجوة عند P4 < الفجوة عند P1
├── نسبة التقارب = الفجوة_النهائية / الفجوة_الابتدائية
└── النسبة يجب أن تكون < عتبة التقارب المحددة (افتراضي 75%)
3- التحقق من الميل
للوتد الهابط:
├── ميل خط المقاومة < 0 (هابط)
├── ميل خط الدعم < 0 (هابط)
└── ميل المقاومة < ميل الدعم (تقارب)
للوتد الصاعد:
├── ميل خط المقاومة > 0 (صاعد)
├── ميل خط الدعم > 0 (صاعد)
└── ميل الدعم > ميل المقاومة (تقارب)
4- فلتر الاتجاه السابق
النماذج الانعكاسية تحتاج اتجاهاً سابقاً لتنعكس منه:
├── يقيس حركة السعر خلال فترة محددة قبل P1
├── يُطبّع الحركة باستخدام ATR لمقارنة عادلة
├── الوتد الهابط يحتاج اتجاهاً هابطاً سابقاً
└── الوتد الصاعد يحتاج اتجاهاً صاعداً سابقاً
5- احترام القناة
وضع عادي (فحص الإغلاق):
└── كل إغلاق بين P1 و P4 يجب أن يكون داخل حدود الوتد
وضع صارم (فحص القمة/القاع):
├── كل قمة يجب أن تكون تحت خط المقاومة (+ نسبة تسامح)
└── كل قاع يجب أن يكون فوق خط الدعم (- نسبة تسامح)
6- التحقق بعد P4
بعد تشكل النقطة الرابعة:
├── للوتد الهابط: السعر لا يكسر خط الدعم أو ينزل تحت P4
└── للوتد الصاعد: السعر لا يكسر خط المقاومة أو يصعد فوق P4
7- نظام تسجيل الجودة
الجودة = (درجة_التقارب × 0.30) + (درجة_الميل × 0.25) +
(درجة_العرض × 0.20) + (درجة_الاتجاه × 0.15) +
(درجة_الارتفاع × 0.10)
├── درجة التقارب: كلما زاد التقارب، زادت الجودة
├── درجة الميل: تناسق ميل الخطين العلوي والسفلي
├── درجة العرض: الأنماط بعرض 40-100 شمعة مثالية
├── درجة الاتجاه: قوة الاتجاه السابق
└── درجة الارتفاع: ارتفاع النموذج نسبة لـ ATR
═════════════════════════════════════════════════════════════
✅ إدارة دورة حياة النموذج (Pattern Lifecycle)
المؤشر لا يرسم ثم يختفي، بل يتابع النموذج كاملًا:
اكتشاف النموذج
مراقبة ما بعد النقطة الرابعة
تأكيد الاختراق
حساب الهدف
تتبع الوصول للهدف
تمييز النجاح أو الإلغاء
❌ يتم إلغاء النموذج تلقائيًا إذا:
فشل في الاختراق
كُسرت القناة عكسيًا
تجاوز مدة الانتظار المحددة
═════════════════════════════════════════════════════════════
✅ أهداف ذكية + Success Level
بعد الاختراق:
يتم حساب الهدف بناءً على ارتفاع النموذج
3 أوضاع للأهداف:
Conservative (0.618)
Balanced (1.0)
Aggressive (1.618)
مستوى Success مستقل لقياس قوة الحركة قبل الهدف
═════════════════════════════════════════════════════════════
🎨 عرض بصري متقدم (3D Visualization)
تمثيل ثلاثي الأبعاد للنموذج
عمق بصري يعكس حجم النموذج
منطقة هدف ثلاثية الأبعاد
ألوان ديناميكية عند تحقق الهدف
🎨 الهدف من 3D ليس الزينة
بل قراءة النموذج بصريًا بسرعة ووضوح
═════════════════════════════════════════════════════════════
⚙️ أهم المميزات
✅ اكتشاف تلقائي للأوتاد
✅ فلترة ذكية تقلل الإشارات الوهمية
✅ تقييم جودة حقيقي لكل نموذج
✅ أهداف واقعية وقابلة للتخصيص
✅ دعم كامل لـ Rising & Falling Wedge
✅ يعمل على جميع الأسواق والفريمات
✅ تصميم احترافي وأداء عالي
═════════════════════════════════════════════════════════════
📊 سيناريوهات الاستخدام
🟢 المضاربة السريعة
أطر: 1–15 دقيقة
جودة ≥ 60
أهداف محافظة
🔵 التداول اليومي
أطر: 15د–1س
جودة ≥ 50
أهداف متوازنة
🟣 التداول المتأرجح
أطر: 4س–يومي
جودة ≥ 40
قناة صارمة
أهداف عدوانية
🟠 العملات الرقمية
تقارب صارم
قناة صارمة
جودة ≥ 65
═════════════════════════════════════════════════════════════
🔔 التنبيهات
كسر وتد هابط ⇒ شراء
كسر وتد صاعد ⇒ بيع
أي كسر وتد
═════════════════════════════════════════════════════════════
⚠️ إخلاء المسؤولية
هذا المؤشر لأغراض تعليمية وتحليلية فقط. لا يُمثل نصيحة مالية أو استثمارية أو تداولية. استخدمه بالتزامن مع استراتيجيتك الخاصة وإدارة المخاطر. لا يتحمل TradingView ولا المطور مسؤولية أي قرارات مالية أو خسائر.
Smart Fixed Volume Profile [MarkitTick]💡 This comprehensive analysis suite integrates Auction Market Theory, structural gap analysis, and statistical liquidity strain modeling into a single, cohesive toolkit. Designed for traders who require a granular view of institutional order flow, this indicator overlays a Fixed Range Volume Profile with intelligent price gap classification and a volatility-adjusted exhaustion detector. By combining these three distinct analytical dimensions, it allows users to identify value consensus, structural breakouts, and potential market turns driven by liquidity shortages.
✨ Originality and Utility
While standard Volume Profiles display where trading occurred, this script advances the concept by contextually analyzing *how* price arrived at those levels. It solves the problem of isolated analysis by fusing three disparate methodologies:
Contextual Integration: It does not merely show support and resistance; it qualifies moves using "Smart Gaps" (classifying gaps based on market structure) and "Liquidity Strain" (identifying unsustainable price velocity).
Institutional Footprint: The inclusion of an "Unusual Volume" highlighter within the profile bars helps traders spot hidden institutional accumulation or distribution blocks that standard profiles miss.
Hybrid Logic: By combining a fixed-time profile (anchored to specific dates) with dynamic, developing gap analysis, it provides both a static roadmap of the past and a dynamic interpretation of current price action.
🔬 Methodology and Concepts
• Fixed Volume Profile Engine
The core of the indicator constructs a volume distribution histogram over a user-defined time window. It utilizes a custom aggregation engine that:
Fetches higher-timeframe volume and price data to ensure accuracy.
Segments the price range into specific "bins" or rows.
Allocates volume to these bins based on price action within the bar, separating Buying Volume (Up bars) from Selling Volume (Down bars).
Calculates the Point of Control (POC) —the price level with the highest traded volume—and the Value Area , which contains 70% (customizable) of the total volume centered around the POC.
• Smart Gap Logic
The script systematically identifies price gaps and classifies them based on their location relative to market pivots (Highs/Lows):
Breakaway Gaps: Occur when price gaps beyond a significant structural pivot (Lookback High/Low), signaling a potential trend initiation.
Runaway Gaps: Occur within an existing trend without breaking structure, indicating trend continuation.
Exhaustion Gaps: Identified when a gap occurs late in a mature trend (measured by bar count since the last pivot) accompanied by a volume spike, suggesting the trend is overextended.
• Liquidity Strain Detector
This module utilizes a statistical approach to measure market stress. It calculates "Illiquidity" by analyzing the ratio of True Range to Volume (Price Impact).
It applies a Logarithmic transformation to normalize the data.
It calculates a Z-Score (Standard Deviation from the mean) of this impact.
If the Z-Score exceeds a threshold (e.g., 2.0 Sigma) while the trend opposes the price move, it triggers an exhaustion signal, indicating that price is moving too easily on too little volume (thin liquidity).
🎨 Visual Guide
• Volume Profile Elements
Histogram Bars: Horizontal bars representing volume at price. Cyan indicates bullish volume; Red indicates bearish volume.
Unusual Volume Highlight: Bars with volume exceeding the average by a set factor (default 2x) are highlighted with brighter, distinct overlays to denote institutional interest.
POC Line: A solid Yellow line marking the price level with the highest volume.
VAH / VAL Lines: Dashed Blue lines marking the Value Area High and Value Area Low.
Background Box: A grey shaded area encapsulating the entire time and price range of the profile.
• Smart Gap Boxes
Blue Box (Breakaway): Marks the start of a new structural move.
Orange Box (Runaway): Marks continuation gaps in the middle of a trend.
Red Box (Exhaustion): Marks potential trend termination points.
Dotted Lines: Extend from the center of gap boxes to serve as future support/resistance levels. These boxes are automatically deleted if price "fills" or violates the gap level.
Note: This tool incorporates core components from [ Smart Gap Concepts ], optimized for this specific strategy.
• Liquidity Signals
Green Label (SE): "Seller Exhaustion" – Appears below bars in a downtrend when selling pressure is statistically overextended.
Red Label (BE): "Buyer Exhaustion" – Appears above bars in an uptrend when buying pressure is statistically overextended.
Note: This tool incorporates core components from [ Liquidity Strain Detector ], optimized for this specific strategy.
📖 How to Use
• Interactive Range Selection: This indicator features a flexible, interactive input system. Upon adding the script to your chart, execution is paused until the analysis range is defined. You will be prompted to click on the chart twice: first to establish the Start Date and second to establish the End Date. Once these anchor points are confirmed, the indicator will automatically load the data and generate the profile for the selected specific period.
● Strategies for Optimal Anchoring
the optimal starting and ending points for high-probability setups:
Swing Highs and Lows (Trend Analysis):
Anchor the Start Date at a major structural swing high or low and the End Date at the current price using the Extend to Present feature. This identifies the "Fair Value" for the entire price move .
Consolidation/Range Anchoring:
Set the Start Date at the first bar of a sideways range and the End Date at the breakout candle. This reveals the high-node volume clusters that will act as future support or resistance.
Session-Based Anchoring (Intraday):
Align the Start Date with the session open (e.g., London or New York open) to track institutional flow for that specific day .
Event-Driven Anchoring:
Place the Start Date on a significant news event or a Breakaway Gap identified by the script's Gap Engine. This helps determine if the new volume supports the direction of the gap.
Correction Cycles:
During a pullback, anchor the Start Date at the start of the correction to find the Value Area Low (VAL), which often serves as a tactical entry point for a trend continuation.
• Identifying Value:
Use the Value Area to gauge market consensus. Acceptance of price within the VA indicates balance. A breakout above VAH or below VAL suggests the market is searching for new value. The POC often acts as a magnet for price correction.
• Trading Breakouts:
Watch for Breakaway Gaps (Blue) that align with a move out of the Volume Profile's Value Area. This confluence increases the probability of a sustained trend.
• Spotting Reversals:
Combine Exhaustion Gaps (Red) with Liquidity Strain Signals (SE/BE) . If price gaps up into a low-volume node on the profile and prints a "Buyer Exhaustion" signal, it suggests the move is unsupported by liquidity and liable to reverse.
• Support and Resistance:
The extended dotted lines from the Smart Gap boxes act as dynamic support/resistance. A retest of a "Runaway Gap" is often a viable entry point for trend continuation.
⚙️ Inputs and Settings
• Global Profile:
Start/End Date: Define the exact window for the volume profile calculation.
Extend to Present: If checked, the profile updates with live data beyond the end date.
• Profile Settings:
Number of Rows: Determines the vertical resolution (granularity) of the histogram.
Value Area %: Default is 70%, representing one standard deviation of volume distribution.
Placement: Position the profile on the Left or Right of the defined range.
• Liquidity & Gaps:
Unusual Threshold: Multiplier of average volume to highlight institutional bars (default 2.0x).
Structure Lookback: Adjusts the sensitivity of pivot detection for gap classification.
Stress Threshold (Sigma): The Z-Score limit for triggering Liquidity Strain signals (default 2.0).
🔍 Deconstruction of the Underlying Scientific and Academic Framework
• Auction Market Theory (AMT):
The script is grounded in AMT, which posits that the market's primary function is to facilitate trade. The Volume Profile visualizes this by displaying a bell curve of price distribution. The Value Area (typically 70%) corresponds to the First Standard Deviation in a normal Gaussian distribution, representing the area of "Fair Value" where buyers and sellers agree.
• Market Microstructure & Kyle’s Lambda:
The Liquidity Strain module draws conceptually from Kyle’s Lambda, a metric in market microstructure that measures market depth and price impact (Illiquidity). By calculating the ratio of price change (True Range) to Volume, the script approximates the "cost" of moving the market.
• Statistical Z-Score Normalization:
To make the liquidity data actionable, the script applies Z-Score normalization: Z = (X - μ) / σ . This converts raw illiquidity values into standard deviations from the mean. A Z-Score above +2.0 signifies a statistically significant anomaly—an outlier event where price moved excessively relative to the volume traded, often preceding a mean-reversion event.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion.
CVD Flow Dashboard [AMT Edition] + Unified AlertsCVD Flow Dashboard – Live Bar Alerts
1️⃣ Purpose of the Tool
The CVD Flow Dashboard is a reaction-based tool. It does not predict the market; it reacts to real-time order flow imbalances:
Detects strong buying/selling pressure (Delta)
Confirms trend alignment (CVD)
Detects absorption and continuation signals
It is designed to show micro (bar-level) and macro (trend) context simultaneously, allowing you to enter trades after a real market reaction occurs, rather than preempting it.
2️⃣ When to Use It
Use this dashboard in real-time trading for reaction trades:
After an attempted market move is absorbed
Market tests a level (high or low of prior bar) but fails — this is absorption.
Example: buyers push price down but sellers absorb → bullish absorption.
Minimum alignment required:
Delta: strong buy/sell delta
CVD: confirms trend direction
Acceptance: continuation candle breaks prior high/low in alignment with delta/CVD
Optional: Sequence (SEQ) — if the next bar continues the acceptance pattern, confidence rises.
Key point: only act after absorption and alignment, never before.
Recommended Integrations for Best Quality Use:
Auction Session Ranges (AMT Edition) – provides session extremes for context and levels.
CVD Flow Labels for Session Ranges – shows delta alignment across session levels.
All-in-One CVD: Failed Auction + Trap + Flow Classifications – adds absorption, trap, and flow classification confluence.
Using these together provides full micro + macro context, improving trade quality and confidence.
3️⃣ Step-by-Step Usage
Step 1: Monitor the Dashboard
Watch Delta, CVD, Acceptance, and Sequence.
Absorption often occurs without immediate alignment — this is the setup stage.
Step 2: Wait for Absorption
Bullish absorption: strong buy delta, failed auction low, price starting upward reaction
Bearish absorption: strong sell delta, failed auction high, price starting downward reaction
Step 3: Confirm the 3 Minimum Boxes
Delta → strong and aligned with absorption
CVD → trend confirmation
Acceptance → bar closes beyond prior high/low
Proceed only if all three align
Step 4: Check for Sequence (Optional)
Next bar continues pattern → higher-confidence setup
Not required, but reinforces trade quality
4️⃣ Entering Trades
Reaction trade: enter immediately once 3 minimum boxes align after absorption / absorption area re-test.
LONG = Bull absorption + CVD bullish + Acceptance
SHORT = Bear absorption + CVD bearish + Acceptance
Sequence bonus: can add to position or widen stop for confidence
5️⃣ Risk Management / Protecting Positions
Initial Stop-Loss: just beyond failed auction extreme (low for bullish, high for bearish)
Trailing Stop / Sequence Protection: trail below prior bar lows/highs if sequence occurs
Avoid Over-Exposure: multiple trades can occur, but only if alignment is verified
Time Sensitivity: reaction trades are intraday/high-frequency — avoid holding overnight without macro confirmation
6️⃣ Practical Tips
Do not trade solely on absorption — wait for minimum 3-box alignment
Use Sequence only as reinforcement
Watch volume spikes and strong delta — often precede absorption/continuation
Best used on 15-minute timeframe ✅ ✅ or higher for swing intraday confirmation; lower timeframes (5 min) for live reaction trades
Combine with Auction Session Ranges, CVD Flow Labels, and All-in-One CVD tools for best quality trade context
✅ Live Bar Alerts
Alerts trigger on the current live bar best, not just at close make sure it continues if you choose to use at close of candle, when:
Bull alignment: Delta + CVD + Acceptance align (Sequence optional)
Bear alignment: Delta + CVD + Acceptance align (Sequence optional)
Alerts continue after bar close if conditions persist, allowing both immediate reaction entries or confirmation at bar close.
✅ Summary Workflow (Reaction Trade Flow)
Market attempts a move → Absorption occurs
Check 3 minimum boxes: Delta + CVD + Acceptance
Optional: Sequence confirms continuation
Enter trade immediately
Place stop-loss just beyond absorption extreme
Use Sequence for trailing stop or scaling confidence
“Let the market react first, then follow the confirmed flow” — this is why it’s a reaction tool, not predictive.
CME Gap Tracker [captainua]CME Gap Tracker - Advanced Gap Detection & Tracking System
Overview
This indicator provides comprehensive gap detection and tracking capabilities for both consecutive bar gaps and weekly CME trading session gaps. It automatically detects gaps, tracks their fill progress in real-time, provides detailed statistics, and includes backtesting features to validate gap trading strategies. The script is optimized for CME futures trading but works with any instrument, automatically handling ticker conversion between CME futures and spot markets.
Gap Detection Types
Consecutive Bar Gaps:
Detects gaps between any two consecutive bars on the current timeframe. Two detection modes are available:
- High/Low Mode: Detects gaps when current bar's low > previous bar's high (gap up) or current bar's high < previous bar's low (gap down). This is more sensitive and detects more gaps.
- Close/Open Mode: Detects gaps when current bar's open > previous bar's close (gap up) or current bar's open < previous bar's close (gap down). This is more conservative.
Weekly CME Gaps:
Detects gaps between weekly trading sessions, specifically designed for CME futures markets. The script automatically detects the first bar of each new week and compares the current week's open with the previous week's close/high/low. This is particularly useful for tracking weekend gaps in CME futures markets where price can gap significantly between Friday close and Monday open.
Smart Ticker Detection
The script automatically converts between CME futures tickers (e.g., BTC1!, ETH1!) and spot tickers (e.g., BTCUSDT, ETHUSDT). When viewing a CME futures chart, it can automatically detect and use the corresponding spot ticker for gap analysis, and vice versa. This allows traders to:
- View CME futures but track spot market gaps
- View spot markets but track CME futures gaps
- Manually override with custom ticker specification
The ticker validation system uses caching to prevent race conditions during initial script load, ensuring reliable ticker resolution.
Gap Filtering & Tolerance
Static Tolerance:
Set minimum and maximum gap sizes as percentages (default: show only gaps > 0.333% and < 100%). This filters out noise and focuses on significant gaps.
Dynamic Tolerance:
When enabled, tolerance is calculated dynamically based on ATR (Average True Range). The formula: Dynamic Tolerance = (ATR × ATR Multiplier / Close Price) × 100%. This adapts to market volatility - in volatile markets, only larger gaps are shown; in calm markets, smaller gaps are displayed. This is particularly useful for instruments with varying volatility.
Absolute Size Filtering:
In addition to percentage filtering, gaps can be filtered by absolute price size (e.g., show only gaps > $100). This is useful for instruments where percentage alone doesn't capture significance (e.g., high-priced stocks).
Fill Confirmation System
To reduce false gap closure signals, the script requires multiple consecutive bars to confirm gap closure. The default is 2 bars, but can be adjusted from 1-10 bars. Lower values (1) confirm faster but may produce false signals from temporary wicks. Higher values (3-5) reduce false fill signals but delay confirmation. This prevents temporary price spikes from triggering false gap closure alerts.
Gap Fill Tracking
The script tracks gap fill progress in real-time:
- Fill Percentage: How much of the gap has been filled (0-100%)
- Fill Speed: Whether fill is accelerating, decelerating, or constant
- Time to Fill: For closed gaps, how many bars it took to fill
- Fill Status: Unfilled, partially filled, or fully filled
Visual Features
Heatmap Colors:
Gap colors can be adjusted based on gap size, with larger gaps appearing more intense and smaller gaps more faded.
Adaptive Line Width:
Line thickness automatically adjusts based on gap size, making larger gaps more prominent.
Age-Based Coloring:
Gaps can be color-coded by age, with newer gaps appearing brighter and older gaps more faded.
Confluence Zones:
Areas where multiple gaps overlap are highlighted with enhanced visuals, indicating stronger support/resistance zones.
Gap Statistics
A comprehensive statistics table provides:
- Total gaps created, open, and closed
- Fill rates by direction (up vs down) and size category (small, medium, large)
- Average fill time, fastest fill, slowest fill
- Oldest gap and oldest unfilled gap
- Backtesting results: success rate, reversal rate, average move after fill
- CME gap expiration statistics: Gaps expired unfilled (for Weekly CME gaps only)
Statistics can be filtered by period (All Time, Last 100/500/1000/5000 bars) and can be reset via toggle button.
Backtesting
When enabled, the script tracks price movement after gap fills:
- Price after fill: Captures price when gap closes
- Move after fill: Percentage price movement after closure
- Success/Reversal tracking: Determines if price continued in fill direction or reversed
- Success rate: Percentage of gaps where price continued in fill direction
This data helps validate gap trading strategies and understand gap fill behavior.
Gap Re-opening Detection
When enabled, the script detects when a previously filled gap reopens (price gaps back through the filled gap zone). This is useful for identifying when support/resistance levels break and can signal trend reversals.
CME-Specific Features
Monday Opening Volume Analysis:
For Weekly CME gaps detected on Monday openings, the script tracks Monday opening volume relative to average volume. Higher Monday volume ratios indicate stronger gap significance. This ratio is integrated into gap strength calculations and can be displayed in gap labels. Gaps with Monday volume > 1.5x average receive priority score boosts.
CME Gap Expiration Tracking:
Weekly CME gaps that remain unfilled beyond a configurable threshold (default 1000 bars) are automatically marked as "expired" and tracked separately in statistics. This helps identify gaps that act as strong support/resistance levels and never fill. Expired gaps are displayed with special labeling and counted in the "Gaps Expired (CME)" statistic.
CME Gap Priority Scoring Enhancement:
The priority scoring system includes special boosts for CME gaps:
- Monday gaps: +10 points (gaps detected on Monday openings)
- High Monday volume gaps: +15 points (Monday volume ratio > 1.5x average)
- Gaps at key weekly levels: +10 points (gaps aligning with previous week's high, low, or close within 0.5% tolerance)
These enhancements help prioritize the most significant CME gaps for trading decisions.
Custom Gap Zones
Traders can manually mark custom gap zones by specifying top and bottom levels. These zones are tracked like automatically detected gaps, allowing traders to:
- Mark historical gaps that weren't detected
- Create support/resistance zones based on other analysis
- Track specific price levels of interest
Multi-Timeframe Support
The script can detect gaps on higher timeframes simultaneously. For example, when viewing a 1-hour chart, it can also detect and display gaps from the weekly timeframe. This provides multi-timeframe context for gap analysis.
Alert System
Comprehensive alert system with multiple trigger types:
- Gap Creation: Alert when new gaps are detected
- Gap Closure: Alert when gaps are fully filled
- Partial Fill: Alert when gaps reach specific fill percentages (e.g., 25%, 50%, 75%, 90%)
- Approaching Closure: Alert when gaps reach high fill levels (e.g., 90%, 95%) before closing
- Gap Re-opening: Alert when previously filled gaps reopen
Alerts can be filtered to trigger only on Mondays (useful for CME weekly gaps) or any day.
Filtering Options
Gaps can be filtered by:
- Fill Status: Show all, unfilled only, partially filled only, or fully filled only
- Fill Percentage Range: Show gaps within specific fill percentage ranges
- Gap Age: Show only gaps within specific age ranges (bars)
- Gap Expiration: Automatically remove gaps older than specified number of bars (for Weekly CME gaps, uses separate CME expiration threshold)
Performance & Safety
The script includes several safety features:
- Safe array operations to prevent index out-of-bounds errors
- Memory leak prevention through proper visual object cleanup
- Ticker validation caching to prevent race conditions
- Week boundary detection for accurate CME gap identification
- Fill confirmation system to reduce false signals
- Monday opening volume analysis for CME gap strength assessment
- CME gap expiration tracking with configurable thresholds
- Priority scoring enhancement for Monday gaps, high Monday volume, and key weekly levels
Usage Recommendations
For CME Weekly Gaps:
1. Set "Gap Detection Type" to "Weekly CME"
2. View a CME futures chart (e.g., BTC1!) or enable auto-detect spot ticker
3. Set tolerance to filter gap size (default 0.333%)
4. Enable statistics to track fill rates
5. Configure alerts for gap creation/closure
For Consecutive Bar Gaps:
1. Set "Gap Detection Type" to "Consecutive Bars"
2. Choose "High/Low" for more gaps or "Close/Open" for fewer gaps
3. Adjust tolerance based on instrument volatility
4. Enable fill confirmation (2-3 bars) for more reliable signals
5. Use filtering to focus on specific gap types
For Gap Trading Strategies:
1. Enable backtesting to validate strategy performance
2. Review statistics to understand gap fill patterns
3. Use confluence zones to identify strong support/resistance
4. Configure alerts for gap events matching your strategy
5. Use custom zones to mark important levels
Technical Details:
• Pine Script v6 | Overlay indicator
• Safe array operations with index validation
• Memory leak prevention through proper object cleanup
• Ticker validation caching for reliable ticker resolution
• Works on all timeframes and instruments
• Comprehensive edge case handling
• Week boundary detection using ta.change(weekofyear)
• Fill confirmation system with configurable bars
For detailed documentation and usage instructions, see the script comments.
Ultimate Lines Statistical Backtest @MaxMaseratiUltimate lines (MAs/MACD/VWAP,DWA etc..) Statistical Backtest
This is a comprehensive statistical backtesting tool that allows traders to objectively measure the performance of 27+ different trading lines across multiple timeframes and sessions. Instead of guessing which moving averages, VWAPs, or volume levels actually work for your trading style, this indicator provides hard data showing exactly how price behaves around each line at specific times of day.
The indicator solves a critical problem: most lines create whipsaws in choppy markets, but knowing which lines have the highest continuation rates vs reversal rates at specific session times helps you avoid false signals and focus on setups with proven statistical edges.
🎯 LINES YOU CAN TEST
MMM Core Lines:
Mid MA: Trend velocity tracker using simple moving average
MMPD Line: Premium/Discount change-of-direction indicator
Fair Value Golden Ratio: 0.618 equilibrium level between premium and discount zones
Volume-Based Lines:
VWAP Daily/Weekly: Volume-weighted average price (daily and weekly sessions)
Volume POC Multi-TF: Multi-timeframe Point of Control (highest volume price level)
Volume POC Weekly: Weekly momentum pivot based on volume distribution
Range Midpoints:
Range Midpoint 50: 50-period high/low midpoint
Range Midpoint 14 TF1/TF2: Configurable timeframe range midpoints with smoothing options
Moving Averages (10 MA Types):
MACD Fast (12) / Signal (26): Standard MACD moving averages
Fast MA 20 / Mid MA 50 / Slow MA 200: Classic trend-following averages
Available MA Types: SMA, EMA, WMA, HMA, DEMA, TEMA, LSMA, KAMA, ALMA, VWMA
Volatility Indicators:
MVM Upper/Lower Bands: Momentum-based volatility bands with adaptive option
HVC Bullish/Bearish: High Volume Candle support/resistance levels
Ultimate Suite Advanced Lines:
DWAP (Delta Weighted Average Price): Directional volume-weighted price with upper/lower bands
HVN (High Volume Node): High-frequency trading node detection
Hybrid Line: Volume-weighted momentum composite
Trend Filter: Two-pole smoothing filter for trend clarity
STL Lines:
iBuSTL / iBeSTL: Internal Bullish/Bearish Structural Trend Liquidity levels
⚙️ HOW TO TEST
Select Lines: Check the boxes for lines you want to analyze (Mid MA, VWAP Daily, Volume POC, etc.)
Choose Times: Enable tracking for specific session times (default: 8:30 AM, 9:30 AM, 10:00 AM, Daily Close - EST)
Set Lookback: Choose how many days of historical data to analyze (default: 60 days)
Enable Pattern Analysis: Turn on "Enable Pattern Analysis" in settings
Wait for Data: The indicator needs 20 bars after each signal time to complete analysis
Review Statistics: Check the statistics table for detailed breakdowns
📈 STATISTICS EXPLAINED
For Each Tracked Time, You'll See:
🟢 Above Selected Lines (X samples):
Continued↑: Price stayed above the lines = bullish continuation
Reversed↓: Price broke below the lines = reversal/rejection
→Kept Going↓: After reversing down, price continued lower (bars 11-20)
→Stalled: After reversing down, price came back up (consolidation)
Neutral: Price didn't make a clear move either way
🔴 Below Selected Lines (X samples):
Continued↓: Price stayed below the lines = bearish continuation
Reversed↑: Price broke above the lines = reversal/support bounce
→Kept Going↑: After reversing up, price continued higher (bars 11-20)
→Stalled: After reversing up, price came back down (consolidation)
Neutral: No clear directional move
⭐ Star Ratings: Show which outcome happens most frequently (best probability)
🔬 HYBRID DETECTION SYSTEM (ADVANCED)
When enabled, the indicator uses a multi-signal composite scoring system that goes beyond simple percentage movements:
Signal A - % Movement Direction (40% weight):
Measures the strength and direction of price movement. Strong directional moves (>0.8%) score higher, while opposite-direction moves score negatively.
Signal B - Inside Candles (30% weight):
Detects true consolidation by counting how many candles close within a defined range. High inside-candle counts indicate choppy, stalled price action rather than clean continuation.
Signal C - Successive Closes (30% weight):
Tracks momentum persistence by counting consecutive closes in the expected direction. Long streaks (6+ bars) indicate strong follow-through, while breaks in the sequence suggest weakness.
Composite Score Classification:
⭐⭐⭐ Strong (75-100 points): All three signals align - high-confidence pattern
⭐⭐ Moderate (50-75 points): Two signals agree - reliable pattern
⭐ Weak (25-50 points): Mixed signals - lower confidence
⚠️ Strong Stalled (0-25 points): Signals show consolidation/reversal
This provides nuanced pattern detection that identifies not just IF a pattern succeeded, but HOW STRONGLY it performed.
💡 INTERPRETING RESULTS
Good Lines Show:
High continuation % when price is above/below (>60% is strong)
Clean "Kept Going" patterns after reversals (>50% indicates reliable rejection)
Low stalled % (less whipsaw/consolidation)
Consistent patterns across multiple times (validates the line's reliability)
Poor Lines Show:
50/50 continuation vs reversal (coin flip = no edge)
High stalled % (lots of whipsaw/false signals)
Inconsistent patterns across different times (unreliable)
Example Interpretation:
9:30 AM - VWAP Daily (120 samples)
🟢 Above:
Continued↑ 75 (62.5%) ⭐ BEST
Reversed↓ 30 (25.0%)
Meaning: When price is above VWAP Daily at 9:30 AM, it continues higher 62.5% of the time - this is a statistically strong bullish signal for that session time.
🎯 PRACTICAL VALUE
Solves the Whipsaw Problem:
Most moving averages and lines work beautifully in trending markets but create endless false signals in choppy, range-bound conditions. By analyzing specific session times and continuation vs reversal patterns, you can:
Identify high-probability setups: Focus on lines that show >60% continuation at your preferred trading times
Avoid weak signals: Skip lines with high stall rates or 50/50 outcomes
Time your entries better: Know which session times produce the cleanest patterns
Combine complementary lines: Stack multiple high-scoring lines for confluence
Adapt to market conditions: Switch to different lines when market structure changes
Real-World Application:
Instead of blindly trading VWAP crosses or MA bounces, you'll have objective data showing: "At 9:30 AM on ES, when price is above Mid MA + VWAP Daily + Volume POC, it continues higher 68% of the time with strong momentum (⭐⭐⭐)." This transforms discretionary guesswork into data-driven decision making.
⚙️ LINE DEFINITIONS
Moving Averages: Smooth price data over X periods to identify trend direction and dynamic support/resistance.
VWAP: Anchored average price weighted by volume - institutional traders' benchmark for "fair value."
Volume POC (Point of Control): Price level with the most traded volume - represents maximum market acceptance.
Fair Value Golden Ratio: Fibonacci 0.618 level between recent premium (high) and discount (low) - equilibrium zone.
DWAP (Delta Weighted): Price average weighted by buying vs selling volume delta - shows directional money flow.
Range Midpoints: Geometric center of recent high/low range - mean reversion pivot.
Volatility Bands: Envelope around momentum lines showing normal price deviation ranges.
HVN (High Volume Node): Automated detection of high-volume price clusters - institutional accumulation/distribution zones.
Note: This indicator is purely for statistical analysis and backtesting. It does not generate trade signals or provide entry/exit recommendations. Use the statistics to inform your own trading decisions and strategy development.
Stochastic RSI (adjustable fast line color)Definition
The Stochastic RSI indicator (Stoch RSI) is essentially an indicator of an indicator. It is used in technical analysis to provide a stochastic calculation to the RSI indicator. This means that it is a measure of RSI relative to its own high/low range over a user defined period of time. The Stochastic RSI is an oscillator that calculates a value between 0 and 1 which is then plotted as a line. This indicator is primarily used for identifying overbought and oversold conditions.
History
The Stochastic RSI (Stoch RSI) indicator was developed by Tushard Chande and Stanley Kroll. They introduced their indicator in their 1994 book The New Technical Trader.
Calculation
In this example, a very common 14 Period Stoch RSI is used.
Stoch RSI = (RSI - Lowest Low RSI) / (Highest High RSI - Lowest Low RSI)
Here are some approximate benchmark levels:
14 Day Stoch RSI = 1 when RSI is at its highest level in 14 Days.
14 Day Stoch RSI = .8 when RSI is near the high of its 14 Day high/low range.
14 Day Stoch RSI = .5 when RSI is in the middle of its 14 Day high/low range.
14 Day Stoch RSI = .2 when RSI is near the low of its 14 Day high/low range.
14 Day Stoch RSI = 0 when RSI is at its lowest level in 14 Days.
The basics
It is important to remember that the Stoch RSI is an indicator of an indicator making it two steps away from price. RSI is one step away from price and therefore a stochastic calculation of the RSI is two steps away. This is important because as with any indicator that is multiple steps away from price, Stoch RSI can have brief disconnects from actual price movement. That being said, as a range bound indicator, the Stoch RSI's primary function is identifying crossovers as well as overbought and oversold conditions.
What to look for
Overbought/Oversold
Overbought and Oversold conditions are traditionally different than the RSI. While RSI overbought and oversold conditions are traditionally set at 70 for overbought and 30 for oversold, Stoch RSI are typically .80 and .20 respectively. When using the Stoch RSI, overbought and oversold work best when trading along with the underlying trend.
During an uptrend, look for oversold conditions for points of entry.
During a downtrend, look for overbought conditions for points of entry.
Summary
When using Stoch RSI in technical analysis, a trader should be careful. By adding the Stochastic calculation to RSI, speed is greatly increased. This can generate many more signals and therefore more bad signals as well as the good ones. Stoch RSI needs to be combined with additional tools or indicators in order to be at its most effective. Using trend lines or basic chart pattern analysis can help to identify major, underlying trends and increase the Stoch RSI's accuracy. Using Stoch RSI to make trades that go against the underlying trend is a dangerous proposition.
Inputs
K
The time period to be used in calculating the %K. 3 is the default.
D
% D = Percent of Deviation between price and the average of previous prices (Momentum). The time period to be used in calculating the %D. 3 is the default.
RSI Length
The time period to be used in calculating the RSI
Stochastic Length
The time period to be used in calculating the Stochastic
RSI Source
Determines what data from each bar will be used in calculations. Close is the default.
Order Blocks & ImbalanceThis indicator automatically identifies and plots Order Blocks (also known as Fair Value Gaps or Imbalances) based on Smart Money Concepts (SMC) and ICT methodology. It detects significant price inefficiencies (gaps between candles) that often act as institutional supply or demand zones.
How It Works (Technical Methodology)
1. Fair Value Gap (FVG) Detection
The indicator identifies classic 3-candle imbalances:
- Bullish Order Block (Demand): When the low of the current candle is significantly below the high of the candle two bars ago (low - high ).
- Bearish Order Block (Supply): When the high of the current candle is significantly above the low of the candle two bars ago (low - high ).
A minimum size threshold is enforced using ATR(14) × user-defined multiplier (default 0.5) to filter out minor gaps and focus on meaningful inefficiencies.
2. Zone Creation
- Bullish zones are created at the candle two bars ago (the "origin" candle where inefficiency occurred).
- Bearish zones use the same origin candle.
- Zone boundaries:
Top = high of origin candle
Bottom = low of origin candle
This captures the full range where price moved aggressively, leaving an imbalance that institutions may later revisit.
3. Mitigation Detection
Zones can be mitigated in two ways (user-selectable):
- "Close": Zone is considered touched only if the close price enters the zone.
- "Wick": Zone is touched if any wick (high/low) enters the zone (more sensitive).
When mitigated:
- Background becomes more transparent
- Border turns dotted
- Label changes to "Mitigated"
Broken zones (price fully closes beyond the opposite side) are automatically deleted.
4. Zone Lifecycle Management
- Active Zone: Strong color fill (green for demand, red for supply) with solid border.
- Mitigated Zone: Faded color, dotted border – indicates partial fill or reduced strength.
- Broken Zone: Automatically removed from chart to reduce clutter.
Old zones are also pruned when exceeding 450 total to maintain performance.
5. Smart Visibility Engine (Optional)
When enabled:
- All zones are initially hidden.
- Only the closest relevant zones are shown:
- Up to user-defined limit (default 10) highest bullish zones (closest below price)
- Up to user-defined limit (default 10) lowest bearish zones (closest above price)
- Visible zones are automatically extended to the right and styled appropriately.
This keeps the chart clean while highlighting the most actionable zones near current price.
6. Visual Elements
- Demand Zones: Green fill, labeled "OB Demand"
- Supply Zones: Red fill, labeled "OB Supply"
- Tiny text size to minimize chart clutter
- Zones drawn as boxes using bar_index positioning
How to Use
Order Blocks represent areas of price inefficiency where smart money likely entered/exited positions aggressively.
- Demand Zones (Green): Potential long entry areas when price returns. Expect buying pressure to defend these levels. Best setups when price retests an active (non-mitigated) zone.
- Supply Zones (Red): Potential short entry areas when price returns. Expect selling pressure to emerge.
- Mitigated Zones: Lower probability – may act as weaker support/resistance.
- Smart Visibility: Highly recommended for cleaner charts. Focuses attention on zones most likely to be tested soon.
- Combine with:
- Break of Structure (BOS)/Change of Character (CHOCH)
- Liquidity grabs
- Higher timeframe confluence
- Volume or momentum confirmation
Use higher FVG threshold (e.g., 0.8–1.0) for fewer, higher-quality zones. Lower threshold for more aggressive detection.
Disclaimer
This indicator is a technical analysis tool and should be used in conjunction with other forms of analysis. Past performance does not guarantee future results. Always use proper risk management.
Market Efficiency Ratio [Interakktive]The Market Efficiency Ratio decomposes price movement into two components: net progress vs wasted movement. This tool exposes the underlying math that most traders never see, helping you understand when price is moving efficiently versus chopping sideways.
Unlike simple trend indicators, this shows you WHY price movement matters — not just whether it's up or down, but how much of that movement was useful directional progress versus noisy oscillation.
█ WHAT IT DOES
• Calculates Efficiency Ratio (0–1 or 0–100) measuring directional progress
• Exposes Net Displacement (how far price actually moved)
• Exposes Path Length (total distance price traveled)
• Calculates Chop Cost (wasted movement)
• Visual zones for high/mid/low efficiency states
█ WHAT IT DOES NOT DO
• NO signals, NO entries/exits, NO buy/sell
• NO performance claims
• NO predictions — purely diagnostic
• This is a tool for understanding price behavior
█ HOW IT WORKS
The efficiency ratio answers one question: "Of all the movement price made, how much was useful progress?"
🔹 THE MATH
Over a lookback period of N bars:
Net Displacement = |Close - Close |
Path Length = Σ |Close - Close | for all bars
Efficiency Ratio = Net Displacement / Path Length
🔹 INTERPRETATION
• Efficiency = 1.0 (100%): Price moved in a straight line — every tick was progress
• Efficiency = 0.5 (50%): Half the movement was wasted in back-and-forth chop
• Efficiency = 0.0 (0%): Price ended exactly where it started — all movement was noise
🔹 CHOP COST
This is the "wasted movement" — how much price traveled without making progress:
Chop Cost = Path Length - Net Displacement
Chop % = Chop Cost / Path Length
High chop cost means lots of effort for little result — a warning sign for trend traders.
█ VISUAL GUIDE
Three efficiency zones:
• GREEN (≥70): High efficiency — strong directional movement
• YELLOW (30-70): Mixed efficiency — some progress, some chop
• RED (<30): Low efficiency — mostly noise, little progress
█ INPUTS
Lookback Length (default: 14)
Number of bars to calculate efficiency over. Higher values produce smoother readings but respond slower to changes.
Smoothing Length (default: 5)
EMA smoothing applied to the output. Reduces noise in the efficiency reading.
Apply Smoothing (default: true)
Toggle EMA smoothing on/off.
Scale Mode (default: 0–100)
Display as percentage (0-100) or decimal ratio (0-1).
Show Reference Bands (default: true)
Display the high/low efficiency threshold lines.
Low/High Efficiency Level (default: 30/70)
Thresholds for classifying efficiency zones.
Overlay Effect (default: None)
• None: No overlay
• Background Tint: Subtle chart background color in high/low zones
• Bar Highlight: Color bars during low efficiency periods
Show Data Window Values (default: true)
Export all raw values (Net Displacement, Path Length, Efficiency, Chop Cost, Chop %) to the data window for analysis.
█ USE CASES
This indicator helps traders understand:
• Why some trends are "clean" and others are "messy"
• When price is consolidating vs trending (without using volume)
• The relationship between movement and progress
• Why high-chop environments are difficult to trade
This is the foundational concept behind more advanced regime detection systems.
█ SUITABLE MARKETS
Works on: Stocks, Futures, Forex, Crypto
Timeframes: All timeframes
Note: This is a price-only indicator — no volume required
█ DISCLAIMER
This indicator is for informational and educational purposes only. It does not constitute financial advice. It does not generate trading signals. Past performance does not guarantee future results. Always conduct your own analysis.
able FRVP Reversal# able FRVP Reversal - Complete User Guide
## 📌 Overview
**able FRVP Reversal** is a professional-grade Volume Profile indicator with an integrated reversal detection system. It combines Fixed Range Volume Profile (FRVP) analysis with a confluence-based reversal scoring system to identify high-probability turning points at key volume levels.
---
## ✨ Key Features
| Feature | Description |
|---------|-------------|
| **Session-Based Volume Profile** | Automatically resets at the beginning of each regular trading session |
| **POC (Point of Control)** | Highest volume price level - strongest support/resistance |
| **VAH (Value Area High)** | Upper boundary of the 70% value area - resistance zone |
| **VAL (Value Area Low)** | Lower boundary of the 70% value area - support zone |
| **Confluence Scoring System** | 5-point scoring system for reversal detection |
| **Smart Cooldown** | Prevents signal spam with customizable cooldown period |
| **Real-time Info Table** | Displays all key metrics in a retro-style dashboard |
---
## 🔧 Installation
1. Open TradingView and go to **Pine Editor**
2. Delete any existing code and paste the indicator code
3. Click **"Add to Chart"**
4. Configure settings as needed
---
## ⚙️ Settings Explained
### 📊 Volume Profile Settings
| Setting | Default | Description |
|---------|---------|-------------|
| **Number of Rows** | 50 | Resolution of the volume profile (more rows = finer detail) |
| **Value Area %** | 70 | Percentage of volume to include in Value Area (industry standard: 70%) |
| **Profile Width** | 40 | Visual width of the histogram on chart |
| **Show Histogram** | ✓ | Display volume histogram bars |
| **Show POC/VAH/VAL** | ✓ | Display the three key levels |
| **Show Labels** | ✓ | Display price labels for each level |
| **Extend Lines** | ✓ | Extend levels to the right of current price |
| **Extend Length** | 100 | How far to extend the lines (in bars) |
### 🔄 Reversal Detection Settings
| Setting | Default | Description |
|---------|---------|-------------|
| **Enable Reversal Detection** | ✓ | Turn reversal signals on/off |
| **Min Confluence Score** | 3 | Minimum score required to trigger signal (1-5) |
| **Cooldown Bars** | 10 | Minimum bars between signals to prevent spam |
#### Understanding Min Confluence Score:
- **Score 1-2**: Very sensitive, many signals (not recommended)
- **Score 3**: Balanced - good for most traders ⭐ Recommended
- **Score 4**: Conservative - fewer but higher quality signals
- **Score 5**: Very strict - only strongest reversals
### 🎨 Color Settings
All colors are fully customizable:
- **POC Line**: Default Gold (#FFD700)
- **VAH Line**: Default Coral Red (#FF6B6B)
- **VAL Line**: Default Teal (#4ECDC4)
- **Bullish Reversal**: Default Green (#00E676)
- **Bearish Reversal**: Default Red (#FF5252)
---
## 📖 How to Read the Indicator
### Volume Profile Histogram
```
█████████████ ← High volume = Strong S/R
████████ ← Medium volume
████ ← Low volume = Weak S/R
██
```
- **Darker/Longer bars** = More trading activity at that price
- **Inside Value Area** = Colored based on session direction (Bull/Bear)
- **Outside Value Area** = Muted gray color
### Key Levels
| Level | Color | Meaning |
|-------|-------|---------|
| **POC** | Yellow | Price with highest volume - Strongest magnet |
| **VAH** | Red | Upper resistance - Look for bearish reversals |
| **VAL** | Teal | Lower support - Look for bullish reversals |
---
## 🔄 Reversal Detection System
### How the Scoring System Works
The indicator uses a **5-point confluence scoring system**. Each condition adds 1 point:
#### 🟢 Bullish Reversal Score (at VAL)
| Condition | Points | Description |
|-----------|--------|-------------|
| Price at VAL Zone | +1 | Price is within VAL ± 0.2 ATR |
| Bullish Candle | +1 | Close > Open (green candle) |
| RSI Oversold | +1 | RSI < 35 |
| Rejection Wick | +1 | Lower wick > 1.5× body size |
| Failed Breakdown | +1 | Touched below VAL but closed above |
#### 🔴 Bearish Reversal Score (at VAH)
| Condition | Points | Description |
|-----------|--------|-------------|
| Price at VAH Zone | +1 | Price is within VAH ± 0.2 ATR |
| Bearish Candle | +1 | Close < Open (red candle) |
| RSI Overbought | +1 | RSI > 65 |
| Rejection Wick | +1 | Upper wick > 1.5× body size |
| Failed Breakout | +1 | Touched above VAH but closed below |
### Signal Quality Ratings
| Score | Rating | Meaning |
|-------|--------|---------|
| 5/5 | ★★★ | Excellent - Highest probability |
| 4/5 | ★★ | Good - High probability |
| 3/5 | ★ | Acceptable - Moderate probability |
| <3 | - | No signal triggered |
---
## 📋 Info Table Explained
```
╔═ able-REV ═╗ 15 ████████ SCR
─────────────────────────────────────
ZONE UPPER VA ▒▒▓▓████ ▲
POC 4272.680 ██████·· ▲
VAH 4322.745 ████···· ·
VAL 4264.977 ██████·· ·
═ SCORE ═════════════════════════════
BULL 0/5 ········ ·
BEAR 1/5 ░······· ·
RSI 49 ▒▒▓▓···· ·
◄SIGNAL► WAIT ········ ·
```
| Row | Description |
|-----|-------------|
| **ZONE** | Current price position relative to Value Area |
| **POC/VAH/VAL** | Price levels with distance indicators |
| **BULL Score** | Current bullish confluence score |
| **BEAR Score** | Current bearish confluence score |
| **RSI** | RSI value with OB/OS status |
| **SIGNAL** | Current signal status (BUY/SELL/WAIT) |
### Zone Types
| Zone | Meaning | Bias |
|------|---------|------|
| ABOVE VAH | Price broke above resistance | Bullish (but watch for rejection) |
| ⚠ AT VAH | Price testing resistance | Watch for bearish reversal |
| UPPER VA | Price in upper value area | Slight bullish bias |
| LOWER VA | Price in lower value area | Slight bearish bias |
| ⚠ AT VAL | Price testing support | Watch for bullish reversal |
| BELOW VAL | Price broke below support | Bearish (but watch for rejection) |
---
## 📈 Trading Strategies
### Strategy 1: VAH Rejection (Bearish Reversal)
**Setup:**
1. Price approaches or touches VAH (red dashed line)
2. BEAR score reaches 3+ (or your minimum setting)
3. REV signal appears above the candle
**Entry:**
- Enter SHORT on signal candle close
- Or wait for confirmation candle
**Stop Loss:**
- Above the signal candle high
- Or above VAH + 0.5 ATR
**Take Profit:**
- First target: POC (yellow line)
- Second target: VAL (teal line)
---
### Strategy 2: VAL Bounce (Bullish Reversal)
**Setup:**
1. Price approaches or touches VAL (teal dashed line)
2. BULL score reaches 3+ (or your minimum setting)
3. REV signal appears below the candle
**Entry:**
- Enter LONG on signal candle close
- Or wait for confirmation candle
**Stop Loss:**
- Below the signal candle low
- Or below VAL - 0.5 ATR
**Take Profit:**
- First target: POC (yellow line)
- Second target: VAH (red line)
---
### Strategy 3: POC Bounce
**Setup:**
1. Price pulls back to POC after trending
2. POC acts as support/resistance
3. Watch for reversal candle patterns
**Entry:**
- Long if bullish candle at POC from below
- Short if bearish candle at POC from above
**Stop Loss:**
- Other side of POC ± buffer
---
## ⚠️ Important Notes
### When Signals Work Best
✅ **High Probability Setups:**
- Score 4-5 with clear rejection wick
- RSI confirms (oversold for long, overbought for short)
- First test of VAH/VAL in the session
- Clear trend before reversal
❌ **Low Probability Setups:**
- Score barely meeting minimum (3/5)
- Multiple tests of same level (level weakening)
- Low volume/choppy market
- News events pending
### Risk Management Rules
1. **Never risk more than 1-2% per trade**
2. **Always use stop loss** - place beyond the level
3. **Wait for candle close** - don't enter on wick touches
4. **Respect the cooldown** - avoid overtrading
5. **Consider the trend** - counter-trend reversals are riskier
---
## 🔔 Alerts
The indicator includes built-in alerts:
| Alert | Trigger |
|-------|---------|
| VAL Bullish Reversal | BULL score meets minimum at VAL |
| VAH Bearish Reversal | BEAR score meets minimum at VAH |
### Setting Up Alerts:
1. Right-click on the chart
2. Select "Add Alert"
3. Choose "able FRVP Reversal" as condition
4. Select desired alert type
5. Configure notification method
---
## 💡 Pro Tips
1. **Combine with trend analysis** - Reversals in trend direction are more reliable
2. **Watch for confluence with other S/R** - If VAH/VAL aligns with round numbers, previous highs/lows, or fib levels, the level is stronger
3. **Volume confirmation** - Higher volume on reversal candle = stronger signal
4. **Time of day matters** - Reversals during active trading hours are more reliable
5. **Adjust sensitivity by market** - Volatile assets may need higher Min Confluence Score
6. **Use multiple timeframes** - Check if reversal level aligns with higher timeframe levels
---
## 🔧 Recommended Settings by Trading Style
| Style | Min Confluence | Cooldown | Best For |
|-------|----------------|----------|----------|
| Scalping | 3 | 5-7 | Quick trades, more signals |
| Day Trading | 3-4 | 10-15 | Balanced approach |
| Swing Trading | 4-5 | 20+ | Fewer, higher quality signals |
---
## ❓ Troubleshooting
| Issue | Solution |
|-------|----------|
| No signals appearing | Lower Min Confluence Score or check if market is ranging |
| Too many signals | Increase Min Confluence Score or Cooldown Bars |
| Levels not showing | Enable Show POC/VAH/VAL in settings |
| Histogram too wide/narrow | Adjust Profile Width setting |
---
## 📞 Support
For questions, suggestions, or bug reports, please contact the developer.
---
**Version:** 1.0
**Last Updated:** 2024
**Platform:** TradingView (Pine Script v6)
RSI Pivot Breaks█ OVERVIEW
RSI Pivot Breaks is an RSI-based indicator that detects breakout events on oscillator-based pivot levels (RSI or MA RSI).
The tool automatically plots pivot levels, tracks their breakouts, highlights momentum shifts, and generates alerts for key events (pivot breaks and OB/OS crosses).
The indicator is designed primarily for momentum strategies — pivot breakouts often precede directional price moves, making RSI Pivot Breaks a powerful tool for identifying accelerations and changes in strength.
█ CONCEPTS
The indicator analyzes local RSI extremes and transforms them into dynamic support/resistance levels.
When RSI or MA RSI breaks the last pivot, it signals a shift in momentum balance, often leading to an impulse move.
Key concepts:
- pivot highs/lows detected on RSI or MA RSI,
- pivot lines extend forward until broken,
- pivot filters restrict pivot detection to specific RSI zones,
- OB/OS levels provide contextual momentum thresholds.
█ FEATURES
Pivot Detection & Breakouts
- Detection of pivot highs and lows on RSI or MA RSI.
- Pivot filters allow you to limit pivot detection to specific RSI ranges (e.g., only bullish pivots below 50 or bearish pivots above 50).
- Pivot lines update automatically after breakout.
Background highlights:
- green on pivot-high breakouts,
- red on pivot-low breakouts.
RSI & MA RSI
- Dynamic RSI colors based on momentum direction.
- Optional MA RSI line (SMA/EMA/RMA/WMA) usable as a smoother pivot source.
OB / OS Zones
- Fully adjustable overbought/oversold levels.
- Dedicated OB/OS colors.
- Optional gradient backgrounds.
Highlights
- Instant identification of moments when RSI breaks a key pivot level.
Alerts:
- pivot high breakouts.
- pivot low breakouts.
- OB crosses.
- OS crosses.
█ HOW TO USE
Add the indicator:
Indicators → RSI Pivot Breaks.
RSI Settings
- RSI Length – core RSI period.
- RSI MA Length & Type – MA RSI smoothing parameters.
Pivot Settings
- Pivot Left / Pivot Right – number of bars required to form a pivot and also the number of bars of delay before the pivot becomes confirmed.
(Higher values produce more reliable but slower pivots.)
Pivot Filters
- Minimum/maximum allowed RSI levels for pivot Highs and Lows.
- Examples:
- detect only pivot Highs at low RSI values.
- ignore pivots during extreme momentum.
- allow only mid-range pivot detection depending on strategy.
Visualization
- Toggles for RSI and MA RSI visibility.
- Optional gradients.
- Full color and transparency customization.
OB/OS Levels
- Adjustable thresholds depending on instrument volatility and strategy style.
█ SIGNAL INTERPRETATION
BUY
- RSI breaks the latest pivot high.
- RSI crosses upward out of OS.
- Context example: pivot lows forming a rising sequence.
SELL
- RSI breaks the latest pivot low.
- RSI drops downward from OB.
- Context example: pivot highs forming a declining sequence.
Trend / Momentum
- Pivot breakouts indicate acceleration or continuation of momentum.
- MA-based pivots provide smoother and more stable momentum structure.
█ APPLICATIONS
- Momentum Trading – pivot breaks as early acceleration signals.
- Scalping & Intraday – fast RSI pivots react quickly to short-term shifts.
- Swing Trading – smoother pivots using MA RSI for higher-timeframe structure.
- Divergence Detection – pivot behavior helps reveal divergence patterns, e.g.:
- RSI pivots rising while price is falling → potential early momentum reversal.
- Custom Filtering – pivot filters allow, for example:
- blocking bullish signals near OB.
- blocking bearish signals near OS.
- detecting pivots only above/below mid-range during strong trends,
depending entirely on strategy design.
█ NOTES
- Pivot detection includes natural delay equal to the Left/Right parameters.
- Pivot filters significantly change the character of signals, allowing fine-tuning of aggressiveness for any strategy.
Open Interest Z-Score [BackQuant]Open Interest Z-Score
A standardized pressure gauge for futures positioning that turns multi venue open interest into a Z score, so you can see how extreme current positioning is relative to its own history and where leverage is stretched, decompressing, or quietly re loading.
What this is
This indicator builds a single synthetic open interest series by aggregating futures OI across major derivatives venues, then standardises that aggregated OI into a rolling Z score. Instead of looking at raw OI or a simple change, you get a normalized signal that says "how many standard deviations away from normal is positioning right now", with optional smoothing, reference bands, and divergence detection against price.
You can render the Z score in several plotting modes:
Line for a clean, classic oscillator.
Colored line that encodes both sign and momentum of OI Z.
Oscillator histogram that makes impulses and compressions obvious.
The script also includes:
Aggregated open interest across Binance, Bybit, OKX, Bitget, Kraken, HTX, and Deribit, using multiple contract suffixes where applicable.
Choice of OI units, either coin based or converted to USD notional.
Standard deviation reference lines and adaptive extreme bands.
A flexible smoothing layer with multiple moving average types.
Automatic detection of regular and hidden divergences between price and OI Z.
Alerts for zero line and ±2 sigma crosses.
Aggregated open interest source
At the core is the same multi venue OI aggregation engine as in the OI RSI tool, adapted from NoveltyTrade's work and extended for this use case. The indicator:
Anchors on the current chart symbol and its base currency.
Loops over a set of exchanges, gated by user toggles:
Binance.
Bybit.
OKX.
Bitget.
Kraken.
HTX.
Deribit.
For each exchange, loops over several contract suffixes such as USDT.P, USD.P, USDC.P, USD.PM to cover the common perp and margin styles.
Requests OI candles for each exchange plus suffix pair into a small custom OI type that carries open, high, low and close of open interest.
Converts each OI stream into a common unit via the sw method:
In COIN mode, OI is normalized relative to the coin.
In USD mode, OI is scaled by price to approximate notional.
Exchange specific scaling factors are applied where needed to match contract multipliers.
Accumulates all valid OI candles into a single combined OI "candle" by summing open, high, low and close across venues.
The result is oiClose , a synthetic close for aggregated OI that represents cross venue positioning. If there is no valid OI data for the symbol after this process, the script throws a clear runtime error so you know the market is unsupported rather than quietly plotting nonsense.
How the Z score is computed
Once the aggregated OI close is available, the indicator computes a rolling Z score over a configurable lookback:
Define subject as the aggregated OI close.
Compute a rolling mean of this subject with EMA over Z Score Lookback Period .
Compute a rolling standard deviation over the same length.
Subtract the mean from the current OI and divide by the standard deviation.
This gives a raw Z score:
oi_z_raw = (subject − mean) ÷ stdDev .
Instead of plotting this raw value directly, the script passes it through a smoothing layer:
You pick a Smoothing Type and Smoothing Period .
Choices include SMA, HMA, EMA, WMA, DEMA, RMA, linear regression, ALMA, TEMA, and T3.
The helper ma function applies the chosen smoother to the raw Z score.
The result is oi_z , a smoothed Z score of aggregated open interest. A separate EMA with EMA Period is then applied on oi_z to create a signal line ma that can be used for crossovers and trend reads.
Plotting modes
The Plotting Type input controls how this Z score is rendered:
1) Line
In line mode:
The smoothed OI Z score is plotted as a single line using Base Line Color .
The EMA overlay is optionally plotted if Show EMA is enabled.
This is the cleanest view when you want to treat OI Z like a standard oscillator, watching for zero line crosses, swings, and divergences.
2) Colored Line
Colored line mode adds conditional color logic to the Z score:
If the Z score is above zero and rising, it is bright green, representing positive and strengthening positioning pressure.
If the Z score is above zero and falling, it shifts to a cooler cyan, representing positive but weakening pressure.
If the Z score is below zero and falling, it is bright red, representing negative and strengthening pressure (growing net de risking or shorting).
If the Z score is below zero and rising, it is dark red, representing negative but recovering pressure.
This mapping makes it easy to see not only whether OI is above or below its historical mean, but also whether that deviation is intensifying or fading.
3) Oscillator
Oscillator mode turns the Z score into a histogram:
The smoothed Z score is plotted as vertical columns around zero.
Column colors use the same conditional palette as colored line mode, based on sign and change direction.
The histogram base is zero, so bars extend up into positive Z and down into negative Z.
Oscillator mode is useful when you care about impulses in positioning, for example sharp jumps into positive Z that coincide with fast builds in leverage, or deep spikes into negative Z that show aggressive flushes.
4) None
If you only want reference lines, extreme bands, divergences, or alerts without the base oscillator, you can set plotting to None and keep the rest of the tooling active.
The EMA overlay respects plotting mode and only appears when a visible Z score line or histogram is present.
Reference lines and standard deviation levels
The Select Reference Lines input offers two styles:
Standard Deviation Levels
Plots small markers at zero.
Draws thin horizontal lines at +1, +2, −1 and −2 Z.
Acts like a classic Z score ladder, zero as mean, ±1 as normal band, ±2 as outer band.
This mode is ideal if you want a textbook statistical framing, using ±1 and ±2 sigma as standard levels for "normal" versus "extended" positioning.
Extreme Bands
Extreme bands build on the same ±1 and ±2 lines, then add:
Upper outer band between +3 and +4 Z.
Lower outer band between −3 and −4 Z.
Dynamic fill colors inside these bands:
If the Z score is positive, the upper band fill turns red with an alpha that scales with the magnitude of |Z|, capped at a chosen max strength. Stronger deviations towards +4 produce more opaque red fills.
If the Z score is negative, the lower band fill turns green with the same adaptive alpha logic, highlighting deep negative deviations.
Opposite side bands remain a faint neutral white when not in use, so they still provide structural context without shouting.
This creates a visual "danger zone" for position crowding. When the Z score enters these outer bands, open interest is many standard deviations away from its mean and you are dealing with rare but highly loaded positioning states.
Z score as a positioning pressure gauge
Because this is a Z score of aggregated open interest, it measures how unusual current positioning is relative to its own recent history, not just whether OI is rising or falling:
Z near zero means total OI is roughly in line with normal conditions for your lookback window.
Positive Z means OI is above its recent mean. The further above zero, the more "crowded" or extended positioning is.
Negative Z means OI is below its recent mean. Deep negatives often mark post flush environments where leverage has been cleared and the market is under positioned.
The smoothing options help control how much noise you want in the signal:
Short Z score lookback and short smoothing will react quickly, suited for short term traders watching intraday positioning shocks.
Longer Z score lookback with smoother MA types (EMA, RMA, T3) give a slower, more structural view of where the crowd sits over days to weeks.
Divergences between price and OI Z
The indicator includes automatic divergence detection on the Z score versus price, using pivot highs and lows:
You configure Pivot Lookback Left and Pivot Lookback Right to control swing sensitivity.
Pivots are detected on the OI Z series.
For each eligible pivot, the script compares OI Z and price at the last two pivots.
It looks for four patterns:
Regular Bullish – price makes a lower low, OI Z makes a higher low. This can indicate selling exhaustion in positioning even as price washes out. These are marked with a line and a label "ℝ" below the oscillator, in the bullish color.
Hidden Bullish – price makes a higher low, OI Z makes a lower low. This suggests continuation potential where price holds up while positioning resets. Marked with "ℍ" in the bullish color.
Regular Bearish – price makes a higher high, OI Z makes a lower high. This is a classic warning sign of trend exhaustion, where price pushes higher while OI Z fails to confirm. Marked with "ℝ" in the bearish color.
Hidden Bearish – price makes a lower high, OI Z makes a higher high. This is often seen in pullbacks within downtrends, where price retraces but positioning stretches again in the direction of the prevailing move. Marked with "ℍ" in the bearish color.
Each divergence type can be toggled globally via Show Detected Divergences . Internally, the script restricts how far back it will connect pivots, so you do not get stray signals linking very old structures to current bars.
Trading applications
Crowding and squeeze risk
Z scores are a natural way to talk about crowding:
High positive Z in aggregated OI means the market is running high leverage compared to its own norm. If price is also extended, the risk of a squeeze or sharp unwind rises.
Deep negative Z means leverage has been cleaned out. While it can be painful to sit through, this environment often sets up cleaner new trends, since there is less one sided positioning to unwind.
The extreme bands at ±3 to ±4 highlight the rare states where crowding is most intense. You can treat these events as regime markers rather than day to day noise.
Trend confirmation and fade selection
Combine Z score with price and trend:
Bull trends with positive and rising Z are supported by fresh leverage, usually more persistent.
Bull trends with flat or falling Z while price keeps grinding up can be more fragile. Divergences and extreme bands can help identify which edges you do not want to fade and which you might.
In downtrends, deep negative Z that stays pinned can mean persistent de risking. Once the Z score starts to mean revert back toward zero, it can mark the early stages of stabilization.
Event and liquidation context
Around major events, you often see:
Rapid spikes in Z as traders rush to position.
Reversal and overshoot as liquidations and forced de risking clear the book.
A move from positive extremes through zero into negative extremes as the market transitions from crowded to under exposed.
The Z score makes that path obvious, especially in oscillator mode, where you see a block of high positive bars before the crash, then a slab of deep negative bars after the flush.
Settings overview
Z Score group
Plotting Type – None, Line, Colored Line, Oscillator.
Z Score Lookback Period – window used for mean and standard deviation on aggregated OI.
Smoothing Type – SMA, HMA, EMA, WMA, DEMA, RMA, linear regression, ALMA, TEMA or T3.
Smoothing Period – length for the selected moving average on the raw Z score.
Moving Average group
Show EMA – toggle EMA overlay on Z score.
EMA Period – EMA length for the signal line.
EMA Color – color of the EMA line.
Thresholds and Reference Lines group
Select Reference Lines – None, Standard Deviation Levels, Extreme Bands.
Standard deviation lines at 0, ±1, ±2 appear in both modes.
Extreme bands add filled zones at ±3 to ±4 with adaptive opacity tied to |Z|.
Extra Plotting and UI
Base Line Color – default color for the simple line mode.
Line Width – thickness of the oscillator line.
Positive Color – positive or bullish condition color.
Negative Color – negative or bearish condition color.
Divergences group
Show Detected Divergences – master toggle for divergence plotting.
Pivot Lookback Left and Pivot Lookback Right – how many bars left and right to define a pivot, controlling divergence sensitivity.
Open Interest Source group
OI Units – COIN or USD.
Exchange toggles for Binance, Bybit, OKX, Bitget, Kraken, HTX, Deribit.
Internally, all enabled exchanges and contract suffixes are aggregated into one synthetic OI series.
Alerts included
The indicator defines alert conditions for several key events:
OI Z Score Positive – Z crosses above zero, aggregated OI moves from below mean to above mean.
OI Z Score Negative – Z crosses below zero, aggregated OI moves from above mean to below mean.
OI Z Score Enters +2σ – Z enters the +2 band and above, marking extended positive positioning.
OI Z Score Enters −2σ – Z enters the −2 band and below, marking extended negative positioning.
Tie these into your strategy to be notified when leverage moves from normal to extended states.
Notes
This indicator does not rely on price based oscillators. It is a statistical lens on cross venue open interest, which makes it a complementary tool rather than a replacement for your existing price or volume signals. Use it to:
Quantify how unusual current futures positioning is compared to recent history.
Identify crowded leverage phases that can fuel squeezes.
Spot structural divergences between price and positioning.
Frame risk and opportunity around events and regime shifts.
It is not a complete trading system. Combine it with your own entries, exits and risk rules to get the most out of what the Z score is telling you about positioning pressure under the hood of the market.






















